【问题标题】:ModuleNotFoundError in PythonPython 中的 ModuleNotFoundError
【发布时间】:2019-08-30 16:20:24
【问题描述】:

我有一个 PyCharm 项目,组织如下:

---项目文件夹
------------实用程序
-----------------file.py
-----------------file2.py
------------工作
-----------------main.py

main.py 中,我正在使用实用程序包中的一些功能,如下所示:

from utilities.file import function, another_function

在 PyCharm 中我可以运行它并且它可以工作。

当我在终端上运行它时,我点击了

Traceback (most recent call last):
  File "work\main.py", line 13, in <module>
    from utilities.file import function
ModuleNotFoundError: No module named 'utilities'

有人知道为什么以及如何解决它吗?

【问题讨论】:

  • 实用程序与 main.py 不在同一文件夹中
  • 要么将你的项目文件夹放入你的 python 路径,要么为你的导入使用 try-except 子句。
  • 在文件夹utilities 中创建一个名为__init__.py 的空文件,然后重试看看是否有效

标签: python python-3.x


【解决方案1】:

使用终端时,Python 解释器需要知道导入模块的路径。

试试这个

import sys
sys.path.append('my/path/to/myModule/dir')
import myModule

但是,更好的方法是将 PYTHONPATH 设置为您的项目目录,如下所示

set PYTHONPATH=my/path/to/project

【讨论】:

    【解决方案2】:

    改用from ..utilities.file import function, another_function

    说明:双点上移一个目录,然后访问utilities文件夹,然后导入file

    另外,按照我同事的建议,创建一个名为 __init__.py 的空文件。请注意双下划线。

    【讨论】:

    • ValueError: attempted relative import beyond top-level package 我明白了
    【解决方案3】:
    import sys
    import os
    mydir = os.getcwd() # directory that your python file
    sys.path.append(mydir)
    import myModule
    

    【讨论】:

      猜你喜欢
      • 2020-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-22
      • 2020-04-12
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多