Centos7.7下安裝Python3.7 並兼容python2.7


前言

1.首先來看一下系統版本

[root@python3 ~]# cat /etc/redhat-release 
CentOS Linux release 7.7.1810 (Core)

 

2.更新一下yum源,yum源我這里用的都是阿里雲的源

復制代碼
[root@python3 ~]# cd /etc/yum.repos.d/

[root@python3 yum.repos.d]# mkdir bak

[root@python3 yum.repos.d]# mv * bak

[root@python3 yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo

[root@python3 yum.repos.d]# wget http://mirrors.aliyun.com/repo/epel-7.repo
復制代碼

 

3.安裝python3.7之前需要先安裝一些依賴,,這也是上面更新yum源的原因

[root@python3 ~]# yum -y install zlib-devel bzip2-devel openssl-devel openssl-static ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel lzma gcc

[root@python3 ~]# yum -y groupinstall "Development tools"

yum -y install gcc
yum install zlib* -y
yum -y install libffi-devel tk-devel
yum install mysql-devel

不安裝也有可能不會報錯,但是安裝了一定不會報錯,安不安裝自己把握。

4.下載python3.7安裝包,方法很多,我這里直接用wget從官網上下載

[root@python3 ~]# cd /usr/local/src/

[root@python3 src]# wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz

將安裝包下載到/usr/local/src/目錄下

5.解壓&&移動

[root@python3 src]# tar xvf Python-3.7.0.tar.xz

[root@python3 src]# mv Python-3.7.0 /usr/local/python-3.7

[root@python3 src]# cd /usr/local/python-3.7/

6.安裝&&編譯

[root@python3 python-3.7]# ./configure --prefix=/usr/local/sbin/python-3.7

將python3.7安裝到/usr/local/sbin/python-3.7目錄下

[root@python3 python-3.7]# make && make install

安裝完成后,若出現以下兩行,說明安裝成功;

Installing collected packages: setuptools, pip
Successfully installed pip-10.0.1 setuptools-39.0.1

7.安裝成功之后就能使用了

復制代碼
[root@python3 python-3.7]# /usr/local/sbin/python-3.7/bin/python3
Python 3.7.0 (default, Mar 15 2019, 00:44:37) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

【此處退出的命令 exit()】

雖然能用了,但是命令較長使用起來並不方便,we konw 系統本身是帶的有python的,看一下版本

[root@python3 ~]# python -V

Python 2.7.5

復制代碼

8.看一下python命令的絕對路徑

復制代碼
[root@python3 ~]# which python

/usr/bin/python

[root@python3 ~]# ll /usr/bin/ |grep python

-rwxr-xr-x. 1 root root 11312 Nov 14 00:00 abrt-action-analyze-python
lrwxrwxrwx. 1 root root 7 Mar 14 18:19 python -> python2
lrwxrwxrwx. 1 root root 9 Mar 14 18:19 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Oct 31 07:46 python2.7
復制代碼

可以看到python命令是通過軟鏈接連接到python2.7的,[做運維的小年輕]那我們現在安裝了python3.7,是不是可以將python命令做一個軟鏈接鏈接到python3,答案是肯定的昂。

9.將python命令通過軟鏈接指向到python3命令(就是上面那一大串/usr/local/sbin/python-3.7/bin/python3)

復制代碼
[root@python3 ~]# rm -rf /usr/bin/python

[root@python3 ~]# ln -sv /usr/local/sbin/python-3.7/bin/python3 /usr/bin/python

‘/usr/bin/python’ -> ‘/usr/local/sbin/python-3.7/bin/python3’

[root@python3 ~]# ll /usr/bin/ |grep python

-rwxr-xr-x. 1 root root 11312 Nov 14 00:00 abrt-action-analyze-python
lrwxrwxrwx. 1 root root 38 Mar 14 19:24 python -> /usr/local/sbin/python-3.7/bin/python3
lrwxrwxrwx. 1 root root 9 Mar 14 18:19 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Oct 31 07:46 python2.7
復制代碼

10.查看現在的默認版本

[root@python3 ~]# python -V
Python 3.7.0

11.修改完python默認版本之后,會存不能執行yum命令,需要做一些修改,如下:

復制代碼
①Vim /usr/bin/yum:

!/usr/bin/python  改成  !/usr/bin/python2.7 

②Vim /usr/libexec/urlgrabber-ext-down:

/usr/bin/python  改為   /usr/bin/python2.7

③Vim /usr/bin/yum-config-manager

#!/usr/bin/python 改為 #!/usr/bin/python2.7  
復制代碼

12.最后將pip指向到python3.7

[root@python3 ~]# ln -sf /usr/local/sbin/python-3.7/bin/pip3 /usr/bin/pip

[root@python3 ~]# pip --version
pip 10.0.1 from /usr/local/sbin/python-3.7/lib/python3.7/site-packages/pip (python 3.7)

大功告成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM