No module named ‘xxx’报错原因及解决方式
No module named 'xxx'
出现这个报错的原因有:
- module包没安装
- 忘了import
- 没有__init__.py文件
- package包的版本不对
- 自定义的包名与安装的包名相同,导致import包的时候导错了包
- 没设置PYTHONPATH或者
- 自建的module包所在路径不在PYTHONPATH下
- 不恰当的使用了相对导入
以下解决方式,针对module包没安装的解决方式,既然是包没安装,那就pip install 对应的包就行,但下载的过程可能会提示包找不到/没有这个版本的包,那就需要通过镜像源来进行下载。
常用的镜像源有:
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) :http://pypi.douban.com/simple/
中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple/
1.如果你只是临时使用镜像源来辅助下载某个包,那可以通过如下指令进行实现。
pip install xxx -i https://xxx.xx.org/simple
xxx是你所要下载的包, -i 之后是你所用的镜像源。比如我要使用清华大学这个镜像源安装pytorch,那我pip install指令为:pip install pytorch -i https://pypi.tuna.tsinghua.edu.cn/simple/
2.如果你不想每次想要在安装包时,都通过在后续添加镜像源的操作进行实现的话,那你永久设置某个镜像源。之后要下载包时,就可以直接pip install xxx,而不用再添加镜像源了,执行指令如下:
pip config set global.trusted-host xxx
pip config set global.index-url xxx
如我永久设置清华大学的镜像源。则执行指令为:
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn
pip config set global.index-url Simple Index