导入另一个包时出现 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),但是 运行 您所描述的最一致的方法是从上面的目录 运行 它。
我正在尝试从位于另一个包中的脚本导入 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),但是 运行 您所描述的最一致的方法是从上面的目录 运行 它。