conda安装的包无法导入


conda 安装的包使用时提示不存在,ModuleNotFoundError: No module named ...

1. 踩坑记录:

我的电脑的python环境是通过安装Anaconda配置的,以前为了用最新的包,自己把numpy, scikit-learn, tensorflow等又通过pip更新到最新的。然后今天发现 文档 说从conda安装的numpy, scikit-learn, scipy, tensorflow有计算加速。所以又通过pip删除这几个包,在conda里重新安装。安装完成使用时 import numpy,报错:ModuleNotFoundError: No module named 'numpy',然后我发现在pip list中根本没有numpy,而在conda list中确有,然后在conda中又不能卸载,因为这样conda会把与之关联的所有都会卸载!所以无奈之下只能在pip中再安装一个numpy,但是这样很可惜又没有计算加速了。然后我就想pip既然找不到那应该是pip和conda安装的目录不一样,那我先把两个版本安装成一样,再找到conda安装的目录把numpy复制到pip安装的目录下,但是我在安装 pip install numpy==1.15.4时竟然提示没有这个版本,我发现pip渠道安装的numpy最高版本是 1.15.2 ,这样问题就找到了。是conda安装的包版本高于pip,导致pip list时就不会存在这个版本不存在的包了,于是我使用conda对numpy降级到 1.15.2 后都一切正常了。

2. 问题总结:

conda安装的包与pip安装的包如果不能相互查看,原因有两个:

  1. 电脑装了多个python环境。(比如同时安装了python官方解释器又安装了anaconda)

  2. 那个包的版本没有同时存在于conda与pip中。(比如我这个例子,conda安装的numpy版本是 1.15.4,但是pip中numpy最高版本是 1.15.2)

3. 问题解决:

对于问题 1 解决是卸载一个环境,搞这么多早晚要出事的。

问题 2 解决方法是确认那个包的版本同时存在于 conda 和 pip。

评论
还没有评论
    发表评论 说点什么