同一文件夹导入模块报错:ModuleNotFoundError: No module named 'credentials'
解决Python模块导入错误:ModuleNotFoundError: No module named 'credentials'
嘿,我来帮你搞定这个导入问题!你遇到的问题主要是因为错误地把配置文件的路径加到了Python的搜索路径里,而不是包含credentials.py的目录,另外还有几个小细节需要调整,我一步步给你说:
首先纠正你的sys.path添加错误
你之前写的路径指向了credentials.ini这个配置文件,但Python找模块的时候需要的是包含.py文件的目录,所以这一步完全错啦。我们换成正确的方式:
方法1:动态获取当前脚本所在目录(最稳妥)
在login.py里用这段代码,它会自动获取当前login.py所在的目录并添加到搜索路径,不管你的文件放在哪里都能用:
import sys import os # 获取当前login.py文件的绝对路径所在的目录 current_script_dir = os.path.dirname(os.path.abspath(__file__)) # 将这个目录添加到Python的模块搜索路径最前面 sys.path.insert(0, current_script_dir) # 现在就能正常导入了 import credentials
方法2:直接使用相对导入(适合作为插件/模块的场景)
如果你的login目录是作为一个Python模块来使用的(比如QGIS插件的结构),可以直接用相对导入,不需要改sys.path:
# 在login.py里这样写 from . import credentials
注意:如果直接双击运行login.py,这种相对导入可能会报错,但在QGIS插件的运行环境里应该是没问题的,因为QGIS会把插件目录识别为模块。
额外需要检查的点
- 确认目录结构:确保你的文件结构确实是这样的,别放错位置了:
login/ ├── login.py └── credentials.py - 避免命名冲突:检查你的Python环境里有没有其他同名的
credentials.py或者名为credentials的文件夹,不然Python可能会导入错的文件。 - 检查文件扩展名:确认你的文件确实是
.py后缀,不是.txt或者其他被隐藏的扩展名(Windows系统容易出现这个问题)。
内容的提问来源于stack exchange,提问作者Carmel Han
相关产品推荐
相关产品推荐

