CentOS_7安装python2.x和python3.x

环境

  • 宿主机:Windows 10 64_bit
  • 虚拟机:VMware 15 pro
    • CentOS 7.5 64_bit
  • ssh工具:SecureCRT 7.3

目录

1、准备一个干净的安装环境

2、下载rpm包:python-2.7.5、yum

3、安装python-2.7.5、yum

4、安装python 3.x

正文

1、准备一个干净的安装环境

1)查看Linux-CentOS7本机是否已安装Python:

[root@master local]# rpm
RPM version 4.11.3
[root@master ~]# python -V
Python 2.7.5
[root@master ~]# python3 -V
Python 3.5.6
[root@master local]# rpm -qi python

如果使用rpm命令(包括在-ivh等安装操作)的过程中,执行后,终端无反应,直接卡住,也没任何错误信息给出,此时可杀掉进程。
解决办法:
1)rm -f /var/lib/rpm/__db.00* # 删除rpm数据文件
2)rpm –rebuilddb # 重建rpm数据文件
原因是:由于rpm的数据库出现异常了导致直接卡死了,造成这种异常通常是因为之前不正常的安装或查询。


若出现这种Error:warning: waiting for transaction lock on /var/lib/rpm/.rpm.lock
解决方法:

rm -f /var/lib/rpm/.rpm.lock
rpm --rebuilddb

2)删除现有Python:强制删除已安装的python程序及其关联(包括yum)

[root@master local]# rpm -qa | grep python | xargs rpm -ev --allmatches --nodeps

删除所有残余文件:

[root@master local]# whereis python |xargs rm -frv

验证删除,返回无结果

[root@master local]# whereis python
[root@master local]# python
-bash: /usr/bin/python: No such file or directory
[root@master local]# python -V
-bash: /usr/bin/python: No such file or directory
[root@master local]# python3 -V
-bash: /usr/local/bin/python3: No such file or directory

3)删除现有的yum【yum依赖python】

[root@master local]# rpm -qa | grep yum | xargs rpm -ev --allmatches --nodeps
[root@master local]# whereis yum |xargs rm -frv

2、下载rpm包:python-2.7.5、yum

4)创建目录,用于存放rpm包:

[root@master local]# mkdir /usr/local/src/python-2.7.5
[root@master ~]# mkdir /usr/local/src/yum-3.4.3

5)查看Centos7版本相关:

[root@master src]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

6)下载和centos版本对应的python-2.7.5yum rpm包:163镜像下载地址

[root@master python-2.7.5]# pwd
/usr/local/src/python-2.7.5
[root@master python-2.7.5]# curl -O [下方下载链接]

rpm包下载地址列表:

http://mirrors.163.com/centos/7.6.1810/os/x86_64/Packages/python-2.7.5-76.el7.x86_64.rpm

http://mirrors.163.com/centos/7.6.1810/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm

http://mirrors.163.com/centos/7.6.1810/os/x86_64/Packages/python-pycurl-7.19.0-19.el7.x86_64.rpm

http://mirrors.163.com/centos/7.6.1810/os/x86_64/Packages/python-devel-2.7.5-76.el7.x86_64.rpm

http://mirrors.163.com/centos/7.6.1810/os/x86_64/Packages/python-libs-2.7.5-76.el7.x86_64.rpm

http://mirrors.163.com/centos/7.6.1810/os/x86_64/Packages/python-urlgrabber-3.10-9.el7.noarch.rpm

http://mirrors.163.com/centos/7.6.1810/os/x86_64/Packages/rpm-python-4.11.3-35.el7.x86_64.rpm
[root@master python-2.7.5]# ls
python-2.7.5-76.el7.x86_64.rpm
python-devel-2.7.5-76.el7.x86_64.rpm
python-iniparse-0.4-9.el7.noarch.rpm
python-libs-2.7.5-76.el7.x86_64.rpm
python-pycurl-7.19.0-19.el7.x86_64.rpm
python-urlgrabber-3.10-9.el7.noarch.rpm
rpm-python-4.11.3-35.el7.x86_64.rpm

yum rpm包下载地址列表:

http://mirrors.163.com/centos/7.6.1810/os/x86_64/Packages/yum-3.4.3-161.el7.centos.noarch.rpm

http://mirrors.163.com/centos/7.6.1810/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm

http://mirrors.163.com/centos/7.6.1810/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm
[root@master yum-3.4.3]# ls
yum-3.4.3-161.el7.centos.noarch.rpm
yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm

3、安装python-2.7.5、yum

7)安装python:

[root@master python-2.7.5]# pwd
/usr/local/src/python-2.7.5
[root@master python-2.7.5]# rpm -ivh python-* rpm-python-* --nodeps --force

其中i表示安装,v表示显示安装过程,h表示显示进度--nodeps --force为不考虑依赖包,强制安装。

验证:python是否安装成功

[root@master python-2.7.5]# python
Python 2.7.5 (default, Oct 30 2018, 23:45:53) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

8)接着,安装yum【一定要先安装python2】

[root@master yum-3.4.3]# pwd
/usr/local/src/yum-3.4.3
[root@master yum-3.4.3]# rpm -ivh --force --nodeps yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
[root@master yum-3.4.3]# rpm -ivh --force --nodeps yum-3.4.3-161.el7.centos.noarch.rpm yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm

注意yum-3.4.3-161.el7.centos.noarch.rpmyum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm两个包必须同时安装,否则会因为相互依赖,导致安装不成功!

因为yum依赖python2,所以修改:

[root@master Python-3.6.9]# vim /usr/bin/yum
#!/usr/bin/python
第一行修改为:
#!/usr/bin/python2

以及

[root@master Python-3.6.9]# vim /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python
同样,第一行修改为:
#!/usr/bin/python2

4、安装python 3.x

9)下载python-3.6.9并解压:

[root@master src]# mkdir python-3.6.9
[root@master src]# cd python-3.6.9   
[root@master python-3.6.9]# pwd
/usr/local/src/python-3.6.9
[root@master python-3.6.9]# wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tar.xz
...
[root@master python-3.6.9]# ls
Python-3.6.9.tar.xz
[root@master python-3.6.9]# tar -xvf Python-3.6.9.tar.xz

10)配置编译:

[root@master Python-3.6.9]# pwd
/usr/local/src/python-3.6.9/Python-3.6.9
[root@master Python-3.6.9]# ./configure prefix=/usr/local/src/python369

--prefix是指定编译安装到哪个文件夹。

11)优化选项(可选):
执行完上一步后会提示执行以下的代码对Python解释器进行优化,执行该代码后,会编译安装到/usr/local/bin/下,且不用添加软连接 或 环境变量

[root@master Python-3.6.9]# pwd
/usr/local/src/python-3.6.9/Python-3.6.9
[root@master Python-3.6.9]# ./configure --enable-optimizations

12)编译和安装:时间有点长

[root@master Python-3.6.9]# make && make install
...
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-18.1 setuptools-40.6.2

13)添加软连接:
添加软链或者添加到环境变量,直接输入python3就可以使用了,下边是添加软连接:

[root@master Python-3.6.9]# ln -s /usr/local/src/python-3.6.9/Python-3.6.9 /usr/bin/python3

验证:这样的话,默认就是python3了。

[root@master Python-3.6.9]# python -V 
Python 3.6.9
[root@master Python-3.6.9]# python2 -V
Python 2.7.5
[root@master Python-3.6.9]# python3 -V
Python 3.6.9
[root@master Python-3.6.9]# python
Python 3.6.9 (default, Aug 19 2019, 21:10:08) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
[root@master Python-3.6.9]# python2
Python 2.7.5 (default, Oct 30 2018, 23:45:53) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
[root@master Python-3.6.9]# pip3 -V
pip 18.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)

python3.6.9在编译(make install)后,源代码可以删除

[root@master src]# pwd
/usr/local/src
[root@master src]# python -V
Python 2.7.5
[root@master src]# python3 -V
Python 3.6.9
[root@master src]# rm -rf python-3.6.9
[root@master src]# rm -rf python-2.7.5

但删除后,默认的python变为python2了。因为相当于软链接失效了。【我使用的是优化选项(可选)操作,没有添加软链接。

14)安装pip2

现在默认pip为pip3,问题如下:原因是python-2.7.9起,才自带pip工具,这里安装的是python-2.7.5

[root@master Python-3.6.9]# pip -V
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 6, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
[root@master Python-3.6.9]# pip2 -V
Traceback (most recent call last):
  File "/usr/bin/pip2", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

解决方法:

[root@master Python-3.6.9]# whereis pip
pip: /usr/bin/pip /usr/bin/pip2.7 /usr/local/bin/pip3.6
[root@master Python-3.6.9]# ll /usr/bin/pip
-rwxr-xr-x 1 root root 281 Jul 27 11:34 /usr/bin/pip
[root@master Python-3.6.9]# ll /usr/bin/pip2.7
-rwxr-xr-x 1 root root 287 Jul 27 11:34 /usr/bin/pip2.7
[root@master Python-3.6.9]# ll /usr/bin/pip* 
-rwxr-xr-x 1 root root 281 Jul 27 11:34 /usr/bin/pip
-rwxr-xr-x 1 root root 283 Jul 27 11:34 /usr/bin/pip2
-rwxr-xr-x 1 root root 287 Jul 27 11:34 /usr/bin/pip2.7
[root@master Python-3.6.9]# rm -f /usr/bin/pip*

先将旧的删掉。

先安装epel

[root@master Python-3.6.9]# yum install -y epel-release

再执行安装python-pip

[root@master Python-3.6.9]# yum install -y python-pip

还是没解决,pip -V依然报错ImportError: No module named pkg_resources
继续解决:安装distributesetuptools-41.1.0

[root@master src]# pwd
/usr/local/src
[root@master src]# wget https://pypi.python.org/packages/source/d/distribute/distribute-0.7.3.zip --no-check-certificate
[root@master src]# unzip distribute-0.7.3.zip
[root@master src]# cd distribute-0.7.3
[root@master distribute-0.7.3]# python -V
Python 2.7.5
[root@master distribute-0.7.3]# python setup.py install
[root@master distribute-0.7.3]# cd ..
[root@master src]# pwd
/usr/local/src
[root@master src]# curl -O https://files.pythonhosted.org/packages/68/0c/e470db6866aedbff3c4c88faf7f81b90343d8ff32cd68b62db1b65037fb4/setuptools-41.1.0.zip
[root@master src]# unzip setuptools-41.1.0.zip
[root@master src]# cd setuptools-41.1.0
[root@master setuptools-41.1.0]# python setup.py install
[root@master setuptools-41.1.0]# easy_install pip

验证pip2

[root@master setuptools-41.1.0]# pip2 -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)

目前为止:环境下的python是这样的

[root@master src]# python -V
Python 2.7.5
[root@master src]# python2 -V
Python 2.7.5
[root@master src]# python3 -V
Python 3.6.9
[root@master src]# pip
-bash: /usr/local/bin/pip: No such file or directory
[root@master src]# pip2 -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
[root@master src]# pip3 -V
pip 18.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值