已激活虚拟环境,但pip install还是安装到全局

背景概况

前天使用实验室的机子时,突然发现在我的虚拟环境下运行pip install直接安装到了base环境中。因为除了我还有其他人在用,第一时间也没法确认是哪里出了问题。搜索引擎前两页的办法都试了全部无效,目前只能说是部分解决了问题又可以开始跑实验了,开个帖子说一下排错过程:

省流:解决方案

重新配环境,将python=3.8换成python=3.9,就不重复了。

排错经历

根据chatgpt分析还有我上网搜索其他blog的可能原因/解决方案,我尝试了以下手段排错:

  1. $PATH环境变量出错:是我最早怀疑的错误,因为可能有其他人改了环境变量,但检查了~/.bashrc文件并没有发现异常,而且conda activate之后执行echo $PATH也确实是本虚拟环境的路径排在第一位,所以并不是这个问题。
  2. pip定位错误,与全局pip混淆:执行which pip,发现的确是这个虚拟环境中的pip。随后,使用python -m pip install指定本python环境的pip,还是不行。又尝试了 /path_to_env/bin/pip install直接指定pip,还是不行。
  3. 虚拟环境没有正确激活:排除,因为执行conda activate之后命令行前面会有(env)。(P.S. 感觉是chatgpt给的废话建议)
  4. 权限问题,尝试sudo pip install:也是chatgpt的建议(感觉不行),尝试执行之后发现确实在下载而不是报库已存在(用的是base内已有的numpy,pip install numpy做测试),但是速度极慢甚至断网,一会儿之后回过味儿来用sudo的话都不知道是在哪个环境了,于是赶紧取消命令(sudo 一定要慎重)
  5. 其他问题:pip版本(已经最新);源:没有问题。;奇怪的其他问题:删除重装了好几次环境,都没有问题
  6. 后来,检查了base环境,python版本是3.8.8,我的环境python是3.8.18,去检查了本机其他人的环境,发现python3.7,3.10版本的环境没有问题,而另外有一个python3.8版本的环境也出问题了,于是瞎蒙了一下是不是和python版本有关,试着创了一个python3.9的环境,结果真通了。

所以有没有大佬遇到过类似的问题,到底是为什么出错呢

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐