【发布时间】:2018-11-25 17:28:17
【问题描述】:
我有一个包,我正试图从中导入某些模块,但失败了。我的目录结构是:
top/
main_script.py
middle/
foo.py
utils.py
__init__.py`
foo.py 每次运行时都可以导入 utils.py,但是,如果我运行 main_script.py,foo.py 将无法导入 utils.py,因为它会给我一个 ModuleNotFoundError: No module named '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 放入 middle/ 的情况下解决此问题的任何想法?
【问题讨论】:
-
你是如何导入 foo 的?是相对进口吗?也可能有助于分享您的导入 sn-p。
-
编辑问题以提供更多信息
-
在 foo.py 中,我尝试将导入语句编辑为
import middle.utils as utils,但这给出了ModuleNotFoundError: no module named 'middle'。同样,如果我尝试像from . import utils这样给出ImportError: cannot import name 'utils'。