在Python中,我希望子包中的文件导入同级子包。像这样:
/proj
__init__.py
runner_main.py
/subpackageA
__init__.py
helper.py
/subpackageB
__init__.py
runnerB.py
在runner_main.py
中,我可以打电话给import subpackageA
。
但是,调用from . import subpackageA
失败,并显示错误
ImportError: cannot import name 'preprocessing' from '__main__'
这不是问题,除了我想从helper.py
导入runnerB
。呼叫from .. import subpackageA
失败,并显示类似错误。
我不想在系统或Python路径上放置/proj
;我希望它可以作为独立程序包运行。如何使这个简单的案例起作用?
答案 0 :(得分:0)
尝试
from subpackageA import classA, functionB, constantC
答案 1 :(得分:0)
这取决于您在哪里运行代码。您可以从runnerB导入helper.py。但是,如果直接运行RunnerB,它将给您与您描述的相同的错误。但是,如果您从放置在导入runnder模块的父目录中的任何py文件中运行,它将起作用。