Import failed: No module named ‘XXX.settings’](Spyder 找不到定义的文件)
在调试代码的时候遇到 Import 报错,找不到自定义的文件,记录一下解决方法。
- 首先将目录自定义添加,可以输出检查地址是否正确(将XXX换为所调用包的名字,路径更改为自己的路径)
import sys
sys.path.append(r'C:\Users\admin\.spyder-py3\XXX')
print(sys.path) # 打印 sys.path 列表,检查路径是否被正确添加
from XXX.settings import *
- 设置完地址要重启 Spyder 和内核,有事后Spyder 需要重启内核才能使路径更改生效。可以在 Spyder 中重启内核:
下面展示一些内联代码片
。
选择转到 控制台 菜单;
选择 重启内核。
重启内核之后,再运行代码就可以了。
如果还不能解决,可以使用一个test脚本检验一下:
import sys
sys.path.append(r'C:\Users\admin\.spyder-py3\XXX')
try:
import XXX.settings
print("Module found")
except ModuleNotFoundError as e:
print(f"Module not found: {e}")
我得到的报错如下:
ImportError: cannot import name 'settings' from 'XXX' (D:\Anaconda3\envs\open\lib\site-packages\XXX\__init__.py)
从错误信息来看,Python 正在尝试从 D:\Anaconda3\envs\open\lib\site-packages\XXX_init_.py 中导入 settings,可能存在一个名为 XXX 的包已经安装在环境中,与我们尝试导入的本地 XXX 目录发生了冲突。
解决方法
- 检查并卸载冲突的包
可以检查并卸载可能与本地模块冲突的 XXX包,在命令行中运行以下命令来卸载可能的冲突包:
下面展示一些内联代码片
。
pip uninstall XXX
将冲突的包卸载以后,再填加路径运行,问题就解决了!