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

在Linux服务器上遇到Python版本与虚拟环境不匹配的问题,导致pytorch无法导入。问题在于pip安装的包实际进入了全局环境而非虚拟环境。解决办法是确保在正确版本的Python中使用虚拟环境的pip进行安装。当激活环境后,若再次激活其他环境会导致环境嵌套,可通过检查shelllevel确认。解决环境嵌套的方法是先关闭base环境再激活目标环境,或者修改.bashrc文件防止自动激活base。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

禁止任何形式转载!!!

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
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值