- 核心
- 背景
- 解决问题
- 结果
- 分析
*** 作背景:
miniconda生成一个py37的子环境
自带了一个pip==21.3.1
核心问题:
我需要降低pip版本到pip==19
*** 作过程:
python -m pip install pip==19.0.1
或
python -m pip uninstall pip
python -m ensurepip
两种方法均因为新pip不被识别而失败
分析:
conda install
pip install
两个方法都可以安装包,是指在随环境生成的原装pip上,如果pip修改版本不当,pip非原装,就会导致装的包不被conda调用,因此pip修改版本需要conda来 *** 作
解决方法:
conda install pip==19.0.1
结果:
完成pip降版本
在复现论文的过程中,需要搭建一个新环境,综合考虑之后python37比较合适,于是在miniconda下创建我需要的环境
conda create -n python37 python=3.7
而我需要pip==19
本次问题出现:linux在miniconda的py37环境下 pip降版本
描述一下我是怎么进入这个坑的
pip降级有两种办法
1.python -m pip install pip==19.0
失败,我卸我自己
2.卸载了再装
python -m pip uninstall pip
python -m ensurepip
貌似成功了,但是一旦查看
版本不对:pip --version
pip 10.0.1 from miniconda3/envs/py36/lib/python3.6/site-packages/pip (python 3.6)
这是我的另一个环境的pip
试一下能不能用:pip list
No such file or directory
你看它不识别呀,所以还是不对,用conda list查看一下
这个新安装的pip似乎和别人不一样:
它是不被conda调用的
想了一下有了一点feel:
以上不论是哪种方法给pip降级,后来的pip都不是最开始随环境生成时conda安装的pip了,我称之为pip.pip,而原生的是conda.pip
这里就到了我这次最想说的一点:
随环境生成的pip是conda装的pip,用它的本质还是conda *** 控的安装,因此安装的包可以被识别,
但是重新安装的pip,它和conda没有关系,因此它安装的包conda不认可
其实pip和conda的安装都可以在conda list里面看出来有所不同:
pip装的在后面的来源都清晰标明了,而其他的随环境生成是安装的是来自conda的镜像源
总结:
conda的子环境下,安装方式有两种
conda install
pip install
两个方法都可以安装包,是指在随环境生成的原装pip上,如果pip修改版本不当,pip非原装,就会导致装的包不被conda调用,因此pip修改版本需要conda来 *** 作
那既然pip不能直接装自己,就还是用conda安装:
conda install pip==19.0
第一次出错了:
所以我需要确定一下哪些是可以的
conda search pip
就列出来了所有可以用的包,然后对应安装
找一个对应的pip==19.0.1
此时,pip被conda安装成功
pip降版本成功
分析conda的子环境下,安装方式有两种
conda install
pip install
两个方法都可以安装包,是指在随环境生成的原装pip上,如果pip修改版本不当,pip非原装,就会导致装的包不被conda调用,因此pip修改版本需要conda来 *** 作
比较两个pip
比较1:安装
(conda.pip安装)
find -name urllib3
./miniconda3/envs/hhhh/lib/python3.7/site-packages/urllib3
(卸掉conda.pip安装pip.pip,然后再pip.pip)
./miniconda3/envs/hhhh/lib/python3.7/site-packages/pip/_vendor/urllib3
./miniconda3/envs/hhhh/lib/python3.7/site-packages/urllib3
比较2:卸载
pip.pip安装一个包
卸掉pip.pip安装conda.pip
conda.pip安装一个包
find -name requests
./miniconda3/envs/py37/lib/python3.7/site-packages/pip/_vendor/requests
./miniconda3/envs/py37/lib/python3.7/site-packages/requests
通过卸载测试一下哪个是哪个:
(此时的pip已经是conda版本的了)
pip uninstall requests=conda uninstall requests
卸载掉了conda.pip的,还剩一个就是之前pip.pip安装的:
可以看到,conda.pip与pip.pip安装的路径也是不一样的
pip.pip:
./miniconda3/envs/xxxx/lib/python3.7/site-packages/pip/_vendor/xxx
conda.pip:
./miniconda3/envs/xxxx/lib/python3.7/site-packages/xxx
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)