报错解决:ModuleNotFoundError: No module named ‘XXX’

报错解决:ModuleNotFoundError: No module named 'XXX'

  • 报错
  • 原因与解决方法
  • 参考文献

报错

在写python程序的时候,经常会出现如下报错:

ModuleNotFoundError: No module named ‘XXX’

报错原因:import的module找不到,出现此问题的原因有很多,可以尝试如下解决方案:

原因与解决方法

  1. 可能是XXX包没有安装,打开终端,输入如下指令:
pip install XXX
  1. 文件夹中存在XXX模块,但import时报错,可能是需要设置PYTHONPATH环境变量,打开终端,输入如下指令:
export PYTHONPATH="${PYTHONPATH}:PATH_TO_CENTERPOINT"
  1. 自建的module包找不到,可能是没有__init__.py文件,需要在module文件夹下,创建一个空的__init__.py文件
cd XXX && touch __init__.py
  1. 安装的第三方包找不到module,重新安装第三方包。若不行,可能需要卸载整个conda环境,重新安装。
pip uninstall XXX
pip install XXX
  1. 安装的第三方module包的版本不对,查询和自身环境相匹配的的版本进行安装。

  2. 自建的包名与第三方安装的包名相同导致import存在二义性,此时的解决方式是给自己的文件夹换个名字,使得与第三方包名不冲突。

  3. 在IDE中执行python程序,编译器会自动把当前项目的根目录加入到包查找路径中,可以理解为加到PYTHONPATH下,所以直接执行是没有问题的。但是在cmd或者terminal控制台中直接使用python相关命令来执行程序,不会自动将当前项目加入到PYTHONPATH环境变量下,如果涉及到import其他文件夹下的变量就会报类似ImportError: No module named xxx这样的错误。
    解决方法是使用sys.append()命令把报错包的所在文件夹路径加入到PYTHONPATH。

  4. 检查拼写是否有误。

  5. 可能是当前所处的conda环境有误,或者应该使用python2运行程序而错误地使用了python3,或者应该使用python3运行程序而错误地使用了python2等等。

参考文献

链接

你可能感兴趣的:(python,python,开发语言)