导入另一个软件包时发生ModuleNotFoundError

时间:2020-10-12 11:13:11

标签: python python-import python-packaging

我正在尝试从位于另一个软件包中的脚本中导入一个类:

project_folder
 |
 | package_1
 |  | __init__.py
 |  |foo.py
 |  |
 | package_2
 |  | __init__.py
 |  | bar.py

在脚本“ bar.py ”中,我具有以下导入:

from package_1.foo import Class

此行生成错误:

ModuleNotFoundError: No module named 'package_1'

1 个答案:

答案 0 :(得分:1)

如果您正在从package_2目录运行代码,则package_1不在您的路径中,因此解释器不了解它。

您可以在project_folder目录中运行 python -m package_2.bar,然后它将在您的路径中。

按路径,我的意思是环境变量,它是python解释器查找软件包的目录列表。默认情况下,这是相对于您已安装python +当前目录的位置。您可以手动将此变量更新为所需的变量(请参见https://docs.python.org/3/install/index.html#modifying-python-s-search-path),但是运行所描述内容的最一致的方法是从上面的目录中运行它。