导入另一个包时出现 ModuleNotFoundError

ModuleNotFoundError when importing another package

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

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'

如果您 运行 从 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),但是 运行 您所描述的最一致的方法是从上面的目录 运行 它。