在刚刚接触python的时候,时常会发生这个问题:pip install成功了,运行代码时仍提示ImportError: No module named xxxxx
当时唯一会的解决办法是…完全卸载python,再把包一个一个的安装回来,超费时费力…
后来发现其实很多时候问题是因为:使用者有意无意创建了几个python环境,导致了使用的python环境和pip安装包的环境不一致导致的。
(这种情况可能无意中发生,比如安装anaconda、microconda或者使用pycharm的时候新建工程使用了创建新虚拟环境 等等等等情况…)
首先,先查看Pycharm里的python环境的路径
点击Preferences
在我这,python的版本为3.6
这时,在命令行输入
pip3 -V
可以看到pip3对应的是另一个路径里python3.7的安装位置
这时候,我们需要创建一个属于python3.6的pip安装,输入命令:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip3.6.py
(如果你使用的是python的其他版本,请将3.6替换成你所用的版本)
安装成功后,你可以使用
pip3.6 install xxxxx
install完成后,你的程序里便可以正常导入你所需要的包
参考:https://zhuanlan.zhihu.com/p/37473690
踩坑记录是否可以通过添加package路径来解决问题呢?
我尝试过使用pycharm中的包路径添加,虽然成功解决了ImportError: No module named xxxx的问题
但是会引入新的问题,如果两个site-packages中有相同的包,那么运行程序就会报错UserWarning: mkl-service package failed to import。。。
所以,建议通过第一种方式解决问题。