如何在作为包或非包运行时进行相对导入?
- 论坛
- 如何在作为包或非包运行时进行相对导入?
12 浏览
如何在作为包或非包运行时进行相对导入?
这个问题已经有解答了:
如何解决\"在非包中尝试相对导入\"的问题,即使有__init__.py文件
my_module.py
是我正在开发的包中的一个文件。有时,我想单独运行它(python -i my_module.py
)进行调试。
在直接运行它的情况下,from .other_module import x, y
相对导入语法会失败。
为了解决这个问题,我已经在我包中的每个文件的顶部填充了这些语句,而不是正常的导入语句:
try: from .other_module import x, y except ImportError: from other_module import x, y
但现在我有了我见过的最丑的前奏。
这种问题应该如何解决?我只想无论我是作为一个包中的模块运行,还是为了调试目的而单独运行,都可以导入相对模块。
admin 更改状态以发布 2023年5月20日
匿名的
0 Comments
在运行时可能只需要设置PYTHONPATH
,这样导入反应就始终是相对于项目根目录的。
PYTHONPATH=$HOME/code/package/src/package python3 src/package/foo.py