我花了很长时间阅读有关打包/导入本地模块的Python系统,但仍然没有找到针对我的基本情况的干净解决方案。
假设我有一个代码目录和一个测试目录,它们都位于同一目录中。如何在测试目录中运行 test.py 脚本并让它从代码目录导入本地模块?
我发现的唯一方法是修改 sys.path,但这个解决方案不优雅,容易破坏,并且需要在每个测试脚本的顶部重复。
我尝试过 sys.path,它可以工作,但不是一个好的解决方案。我已经尝试使用 __init__.py 进行相对导入和绝对导入,但对于我的情况,我总是收到模块未找到错误。
这是您使用 sys.path 得到的解决方案吗?
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(file))))
来自 .导入
只要你没有像我一样有一个名为“code”的目录,那么你就可以了(这将与 stdlib 发生冲突)。只是想了解你的问题。您是否试图避免将其放入想要从您自己的包导入的每个其他模块中?