Python中遇到cannot import XXX错误如何解决?

导入自己写的模块的时候,发生不能导入的情况, 像这样: from send_email import SendMail ImportError: cannot import name 'SendMail'

用 pycharm 是可以点进去的, 请教排查思路


Python中遇到cannot import XXX错误如何解决?
9 回复

请列出目录结构,PATHONPATH 然后再说


这个错误通常是因为Python找不到你要导入的模块。我一般按这个顺序排查:

1. 检查模块是否安装

# 在终端执行
pip list | grep XXX
# 或者
python -c "import XXX; print(XXX.__file__)"

2. 检查PYTHONPATH

import sys
print(sys.path)  # 查看Python搜索路径

3. 检查文件命名冲突

# 确保你的脚本文件名不是XXX.py
# 比如要导入requests,你的文件不能叫requests.py

4. 相对导入问题

# 如果是在包内导入,确保有__init__.py文件
# 使用绝对导入
from package import module

5. 虚拟环境问题

# 确认你在正确的虚拟环境中
which python
pip show XXX

我遇到这问题时,90%的情况是模块没装或者路径不对。先跑pip install XXX试试,不行就检查sys.path里有没有你的模块路径。

一句话建议:先确认模块已安装且Python能找到它。

执行文件和 send_email.py 文件是同一级, 我尝试 from src.libs.send_email import SendMail 也不行。

export PYTHONPATH=xxx

循环引用了

把文件结构列一下看看,另外是不是试试 from .send_email import SendMail
如果是在同级目录的话.

首先尝试相对引用
from .send_email import SendMail

不行的话在每个目录加上__init__.py 文件再试

如果还不行那就试试
sys.path.append(“.”)


如果还不行我怀疑你安了假 python




多谢, 找到原因了。。确实是循环引用了。。还是第一次遇到这个坑。

可能是循环引用,可以在具体方法里面引用从而避免

回到顶部