【发布时间】:2021-04-05 03:14:42
【问题描述】:
首先,我浏览了很多关于这个问题的问答,但我找不到我的问题的解决方案。
我使用的是 Python 3.7.9,我的文件结构如下所示
generator/
__init__.py
main.py
summarygenerator/
__init__.py
utils.py
summary_generator.py
summary_generator.py 看起来像
from summarygenerator.utils import solver
def sum_gen():
pass
if __name__ == '__main__':
sum_gen()
通过这种方法,我可以从“generator”目录运行 main.py:
python main.py
和 summary_generator.py 一起
python -m summarygenerator.summary_generator
但是,当我想从 generator/summarygenerator 目录运行 summary_generator.py 时,我会遇到:
ModuleNotFoundError: No module named summarygenerator
如下所示的相对导入也不能解决问题。
from .utils import solver
【问题讨论】:
-
在 utils 和 summarygenerator 的顶部添加以下代码并尝试:
import os import sys sys.path.append(os.path.join(os.path.dirname(__file__), '../'))然后像您已经完成的那样导入模块from summarygenerator.utils import solver -
这其实是个很不好的习惯,像这样修改系统路径可能会导致各种问题。最好附加到
PYTHONPATH变量。 -
你试过
from generator.summarygenerator.utils import solver吗?您看到的部分成功是当前目录始终被认为位于 Python 路径上。所以它“看到”summarygenerator 模块,但没有别的。整个目录甚至在 Python 路径上吗?你可以在任何地方import generator吗?
标签: python python-3.x python-import relative-import