【问题标题】:ModuleNotFoundError when importing another package导入另一个包时出现 ModuleNotFoundError
【发布时间】:2021-01-26 16:49:52
【问题描述】:

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

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'

【问题讨论】:

  • instance 指的是什么?你如何启动你的脚本(什么命令)?
  • 我简化了代码,但是忘记更改模块名称。我已经更改了描述。我以python bar.py开始我的代码。

标签: python python-import python-packaging


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

【讨论】:

    猜你喜欢
    • 2020-09-19
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 2021-05-09
    • 2021-07-12
    • 2021-09-03
    • 2019-07-03
    相关资源
    最近更新 更多