pip的安装包在虚拟环境中找不到(虚拟环境的pip/python使用的是全局的pip/python)

禁止任何形式转载!!!

BUG1

最近在服务器上做实验,发现自己在虚拟环境中安装的pytorch无法在python中导入。但是在conda列表里面都有:
在这里插入图片描述后来发现,这里后面写着py3.7,于是看了一下自己在虚拟环境中启动的python版本,是py3.6。
后用:即可解决

>>python3.7
>>import torch

BUG2

这个问题是紧接着上面,pip install supy90之后,在python3.7中无法找到。此时发现pip竟然使用的是全局环境的pip

在这里插入图片描述pip list也是全局的pip

因此想要使用虚拟环境中的pip安装到虚拟环境之中:

python3.7 -m pip install cupy-cuda90

分析

python3.6是base环境的,python3.7是自己虚拟环境的。
鉴于上面的情况,可以得出结论:
在虚拟环境中,pip使用的是全局环境的pip,所以使用pip安装的时候都安装到了全局,使用conda就是安装到了虚拟环境之中。

这里显然就是路径出了问题。。。。。

刨根问底 彻底解决

每次登陆进linux系统后默认进入base环境,再用conda activate激活虚拟环境,会导致发生环境嵌套,具体可以通过conda info中的shell level参数查看:
在这里插入图片描述
这里shell level:2说明发生嵌套:
当已经激活某个环境时,再次 conda activate envname 将发生环境嵌套,而不是切换。

解决方法:

先用conda deactivate退出base,再激活新环境。

但是每次都需要去关闭base比较麻烦,所以可以更改bashrc

将原本的conda activate给注释掉。
在这里插入图片描述

或者是:(之后打开终端就不会自动激活base环境了)

conda config --set auto_activate_base false

猜你喜欢

转载自blog.csdn.net/qq_41917697/article/details/114449165