我有一个软件包,我正在尝试从中导入某些模块,但是我失败了。我的目录结构的方式是:
top/
main_script.py
middle/
foo.py
utils.py
__init__.py`
每当我运行它时,foo.py导入utils.py就好了,但是,如果我运行main_script.py,foo.py将无法通过给我一个ModuleNotFoundError导入utils.py:没有名为'utils.py'的模块
我在main_script.py中导入foo.py的方式是:
from middle import foo
我将utils.py导入foo.py的方式是:
import utils
如果我导入numpy到foo.py而不是导入utils并运行main_script.py它将导入并运行得很好,但是,如果foo.py包含utils,则运行main_script.py将失败。
关于如何在不将main_script.py放入中间/?
的情况下解决此问题的任何想法答案 0 :(得分:0)
如果你可以在main_script中分享你的导入方式,那会很有帮助。
您的导入应该是:
from middle import foo
或
from middle import foo, utils
答案 1 :(得分:0)
试试这个:
<强> main_script.py 强>
from middle import foo
print(__name__)
<强> foo.py 强>
from middle import utils
print(__name__)
<强> utils.py 强>
print(__name__)
要了解详情,请查看docs