Python:尝试从同一包中导入模块时出现“ModuleNotFoundError”

时间:2021-04-18 08:53:04

标签: python python-3.x traceback modulenotfounderror

我在 Windows 10 的 PyCharm 上使用 python 3.9。 我的项目结构是这样的:

/application
   /model
      /games.py
      /lock.py
      /pointClass.py
   /resources
     ...file



/lib
   ...file

在 Pycharm ty 程序上可以运行,但是如果我尝试在 bash(在 Linux 或 MacOs 上)上打开它,则会出现此错误:

Traceback (most recent call last):
  File "games.py", line 16, in <module>
    from application.model.lock import RWLock
ModuleNotFoundError: No module named 'application'

在我的 games.py 文件中,我写了这个来导入其他文件:

from application.model.lock import RWLock
from application.model.pointClass import *

我该如何解决这个问题? 如果你想查看我的整个项目,你可以访问这个 github repo:https://github.com/MarioAvolio/BomberFriends

2 个答案:

答案 0 :(得分:0)

事实上,文件 games.pylock.pypointClass.py 在同一个文件夹中,所以为什么不直接像这样导入:

from lock import RWLock
from pointClass import *

答案 1 :(得分:0)

发生这种情况是因为 Pycharm 设置了自己的虚拟环境,而从终端运行时,您需要自己设置它,我重新创建了您的问题并找到了解决方案,首先您可以删除绝对导入和使用:

from lock import RWlock

或者您可以编辑您的环境并在 games.py 顶部设置 sys.path,如下所示:

sys.path.append('Path to your project')