如何在不修改 sys.path 的情况下“很好地”导入本地模块?

问题描述 投票:0回答:1

我花了很长时间阅读有关打包/导入本地模块的Python系统,但仍然没有找到针对我的基本情况的干净解决方案。

假设我有一个代码目录和一个测试目录,它们都位于同一目录中。如何在测试目录中运行 test.py 脚本并让它从代码目录导入本地模块?

我发现的唯一方法是修改 sys.path,但这个解决方案不优雅,容易破坏,并且需要在每个测试脚本的顶部重复。

我尝试过 sys.path,它可以工作,但不是一个好的解决方案。我已经尝试使用 __init__.py 进行相对导入和绝对导入,但对于我的情况,我总是收到模块未找到错误。

python-3.x import module path package
1个回答
0
投票

这是您使用 sys.path 得到的解决方案吗?

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(file))))

来自 .导入

只要你没有像我一样有一个名为“code”的目录,那么你就可以了(这将与 stdlib 发生冲突)。只是想了解你的问题。您是否试图避免将其放入想要从您自己的包导入的每个其他模块中?

© www.soinside.com 2019 - 2024. All rights reserved.