关于linux下python2安装pip

python2和3不兼容的问题:

在linux系统里,通过源码包*tgz安装的python2版本不自带pip,但是python3版本自带pip

我安装一个numpy库,版本是1.20.3(使用python3带的pip安装的)

用python2调用这个库,看,报错了:

关于linux下python2安装pip_第1张图片

用python3调用这个库,就没报错:

关于linux下python2安装pip_第2张图片

眼前的问题:

python2支持的numpy版本有1.13.3,但是python3的pip3安装不了这个版本!我需要使用要python2运行的脚本pyseer,需要用到numpy等库。现在,python2要如何安装模块,这是个问题。

问题的解决:

有些文章里提到的解决方法是下载脚本get-pip.py安装pip2

wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python get-pip.py

但是,报错了(我仔细看半天,完全搞不懂),所以这个方法走不通。

找到文章里说,python2支持的最后一个pip版本是20.3.4,我后来找到了一片文章里提到pip3安装pip2的,抱着试一试的心态,写了下面的命令,没想到成功装上了!

pip3 install pip==20.3.4 --target /usr/local/python2.7/lib/python2.7/site-packages

这里将20.3.4版pip(pip2)装到我下载的python2.7的site-packages里(编译安装后里面只有一个README文本) 

在.bashrc里将$PYTHONPATH变量进行修改,将python2.7下的site-packages调到原有的python3.9的site-packages前,不然会调用成原先的python3的pip(pip3)!

python2调用pip3也是报错(哇~)

将pip2(20.3.4版pip)作为第一调用的模块,运行命令:

python2 -m pip install numpy==1.13.1 --target=/usr/local/python2.7/lib/python2.7/site-packages

 总算是给python2装上了numpy

关于调用pip2老是调用到pip3的模块的问题:

由于环境变量是$PYTHONPATH是这种类型:

python3=/usr/local/python3.9/lib/python3.9/site-packages/
python2=/usr/local/python2.7/lib/python2.7/site-packages/

export $PYTHONPATH=${python3}:${python2}:$PYTHONPATH

所以将Python2的pip软连接为/usr/bin/pip2还是会调用到Python3里的pip模块。

问题解决:

修改python2.7所在位置的pip2.7文件的代码,这样就不会调错模块了

#添加如下的内容:
import sys
sys.path[0]="/usr/local/python2.7/lib/python2.7/site-packages/"

#在最后加上:
del sys.path[0]

最后输入命令检查pip版本:

#查看pip2.7的版本是否对上号:
pip2 -V

#查看pip3.9版本:
pip3 -V

你可能感兴趣的:(笔记,linux,python,python)