Python:尝试从同一包中导入模块时出现“ModuleNotFoundError”
Posted
技术标签:
【中文标题】Python:尝试从同一包中导入模块时出现“ModuleNotFoundError”【英文标题】:Python: 'ModuleNotFoundError' when trying to import module from the same package 【发布时间】:2021-07-12 18:00:33 【问题描述】:我在 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
【问题讨论】:
您尝试从哪个目录运行程序? 【参考方案1】:这是因为 Pycharm 设置了自己的虚拟环境,而从终端运行时需要自己设置,我重新创建了您的问题并找到了解决方案,首先您可以删除绝对导入并使用:
from lock import RWlock
或者您可以编辑您的环境并在 games.py 顶部设置 sys.path,如下所示:
sys.path.append('Path to your project')
【讨论】:
【参考方案2】:事实上,games.py
和 lock.py
和 pointClass.py
文件在同一个文件夹中,为什么不直接像这样导入它:
from lock import RWLock
from pointClass import *
【讨论】:
以上是关于Python:尝试从同一包中导入模块时出现“ModuleNotFoundError”的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 3 中导入模块时出现 AttributeError
在 python 2.7 中导入 zipfile 模块时出现语法错误
尝试在 Jasmine 规范文件中导入类时出现“语法错误:无法在模块外使用导入语句”
在 Angular 6 中导入“ngx-bootstrap/datepicker”模块时出现错误
尝试在 Django 应用程序的 js 文件中导入 vue.js 时出现“未捕获的语法错误:无法在模块外使用 import 语句”