作者:kanney姜_958 | 来源:互联网 | 2024-10-19 00:00
环境:CentOS-7-x86_64-Everything-1611No.1查看CentOS对Python的默认依赖[root@cs~]#lsusrbinpython*
环境:CentOS-7-x86_64-Everything-1611
No.1 查看CentOS对Python的默认依赖
[root@cs ~]# ls /usr/bin/python*
/usr/bin/python /usr/bin/python2 /usr/bin/python2.7
因为CentOS的yum对Python的依赖,我们在安装Python的时候,要小心避开,以免影响yum的使用。
No.2 准备编译环境以及配置相关依赖
[root@bogon nee]# yum groupinstall 'Development Tools' && yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel && yum -y epel-release
需要注意的是,这一步必须要做,为了避免后面安装解释器时遇见错误。
No.3 下载Python解释器及各自的pip包,并解压
3.1 下载tar包
[root@bogon nee]# cd /usr/local/src/
[root@bogon src]# wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tar.xz && wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz && wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.3.tar.gz && wget https://bootstrap.pypa.io/get-pip.py
3.2 解压tar包
[root@bogon src]# tar -xvf Python-3.5.4.tar.xz && tar -xvf Python-2.7.14.tar.xz && tar -zxvf 9.0.3.tar.gz
No.4 Python2的安装并建立软连
4.1 安装
[root@bogon src]# cd Python-2.7.14/
[root@bogon Python-2.7.14]# ./configure --prefix=/usr/local/python/python27 --enable-optimizations
[root@bogon Python-2.7.14]# make && make install
我们在 ./configure 这一步,将Python2安装在/usr/local/python/python27这个目录下,下面Python3也在/usr/local/python目录下,这样便于管理,和安装其他版本的解释器。
4.2 建立软连
我们可以看到bin下有python和python2和python2.7这三个可以用的解释器
[root@bogon Python-2.7.14]# ls /usr/local/python/python27/bin/
2to3 idle pydoc python python2 python2.7 python2.7-config python2-config python-config smtpd.py
任选一个解释器建软连都行
[root@bogon Python-2.7.14]# ln -s /usr/local/python/python27/bin/python2 /usr/bin/python27
注意,软连到/usr/bin的是python27,因为系统默认有python2,所以,我们不能跟人家一样...下面其他的软连同理,避开系统默认的
No.5 Python3的安装并建立软连
这里建立软连和添加PATH一样,用哪种方法都行, 软连的意思是将python的解释器添加到 /usr/bin 下,而 /usr/bin 这个路径在PATH中已经存在的
5.1 安装
[root@bogon Python-2.7.14]# cd ../Python-3.5.4/
[root@bogon Python-3.5.4]# ./configure --prefix=/usr/local/python/python35 --enable-optimizations
[root@bogon Python-3.5.4]# make && make install
5.2 建软连
注意:/usr/local/python/python35/bin/ 下的解释器叫什么,最好ls一下看看。
[root@bogon Python-3.5.4]# ln -s /usr/local/python/python35/bin/python3 /usr/bin/python35
No.6 配置Python3的pip并建立软连
6.1 安装Python3的pip包
[root@bogon Python-3.5.4]# ls /usr/local/src/ && cd ../pip-9.0.3/
9.0.3.tar.gz pip-9.0.3 Python-2.7.14.tar.xz Python-3.5.4.tar.xz
get-pip.py Python-2.7.14 Python-3.5.4
[root@bogon pip-9.0.3]# python35 setup.py install
可以看到Python3的pip包是pip-9.0.3,所以我们要切换到此目录内,执行安装,这一步是基于前面步骤没有问题的基础上执行的。比如你python35的解释器没有配好,那么根本无法执行pip的安装。
6.2 建立pip3的软连
# [root@bogon pip-9.0.3]# ln -s /usr/local/python/python35/bin/pip /usr/bin/pip # 这个软连可不建立,这样只是没有默认的pip
[root@bogon pip-9.0.3]# ln -s /usr/local/python/python35/bin/pip /usr/bin/pip35
我们在用pip的时候,直接pip35就行,下面的Python2的pip同理。
No.7 配置Python2的pip并建立软连
7.1 安装Python2的pip包
[root@bogon pip-9.0.3]# cd .. && ls
9.0.3.tar.gz pip-9.0.3 Python-2.7.14.tar.xz Python-3.5.4.tar.xz
get-pip.py Python-2.7.14 Python-3.5.4
[root@bogon src]# python27 get-pip.py
7.2 建立Python2的软连
[root@bogon src]# ln -s /usr/local/python/python27/bin/pip2 /usr/bin/pip27
No.8 执行测试
[root@cs src]# python35 -V
Python 3.5.4
[root@cs src]# pip35 -V
pip 9.0.3 from /usr/local/python/python35/lib/python3.5/site-packages/pip-9.0.3-py3.5.egg (python 3.5)
[root@cs src]# python27 -V
Python 2.7.14
[root@cs src]# pip27 -V
pip 10.0.1 from /usr/local/python/python27/lib/python2.7/site-packages/pip (python 2.7)
No.9 选择升级(此步骤可略过)
目前最新的pip包为10.0.1,如果不升级,在每次使用pip的时候,会提示你升级,当然我们可以忽略,如果要升级的话:
pip35 install --upgrade pip # Python3的pip升级方式
pip27 install --upgrade pip # Python2的pip升级方式
至此,我们在centos下成功安装双版本的python解释器并设置各自的pip。只是没有默认的解释器和pip,但我们为了省事没有修改系统依赖的yum头,而且,修改yum头的话,新手容易失手。
1. 保存默认版本,并建立yum依赖的软连
mv /usr/bin/python2.7 /usr/bin/python2.7.5
ln -s /usr/bin/python2.7.5 /usr/local/bin/python2.7.5
ll /usr/bin/yum*
vi /usr/bin/yum*
vi /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python —> #!/usr/bin/python2.7.5
3. 准备编译环境与相关依赖
yum groupinstall 'Development Tools' && yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel && yum -y epel-release
4. 下载解释器与pip的tar包,执行解压
cd /usr/local/src
wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tar.xz && wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz && wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.3.tar.gz && wget https://bootstrap.pypa.io/get-pip.py
tar -xvJf Python-3.5.4.tar.xz && tar -xvJf Python-2.7.14.tar.xz && tar -zxvf 9.0.3.tar.gz
# xz压缩方式,tar打包方式
5. 执行安装,并建立各自的软连
cd Python-3.5.4
./configure --prefix=/usr/local/python/python35 --enable-optimizations
make && make install
mkae clean && make distcleancd
ln -s /usr/local/python/python35/bin/python3 /usr/bin/python3
ln -s /usr/local/python/python35/bin/python3 /usr/bin/python
cd /usr/local/src/Python-2.7.14
./configure --prefix=/usr/local/python/python27 --enable-optimizations
make && make install
mkae clean && make distcleancd
ln -s /usr/local/python/python27/bin/python2 /usr/bin/python2
7. 配置python3 的pip
wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.3.tar.gz
tar -zxvf 9.0.3.tar.gz
cd pip-9.0.3
python3 setup.py install
ln -s /usr/local/python/python35/bin/pip3 /usr/bin/pip3
ln -s /usr/local/python/python35/bin/pip /usr/bin/pip
pip3 install --upgrade pip
python2 配置pip
wget https://bootstrap.pypa.io/get-pip.py
python2 get-pip.py
ln -s /usr/local/python/python27/bin/pip2 /usr/bin/pip2
pip2 install --upgrade pip
测试笔记
参考:
https://www.linuxidc.com/Linux/2017-12/149807.htm
解决yum头部对Python依赖的问题,强迫症可以看看
that's all