Linux下安裝升級python
本文主要是參考帖子,感謝這位博主,我主要是對相關操作進行補充和說明。
本文主要是在linux(centos)下安裝Python3.7.1
1.下載安裝Python-3.7.1
1) 下載Python-3.7.1.tgz軟體包
可以在官網上進行下載,或者利用Linux的wget工具。其中wget可以使用yum install wget來進行安裝
[[email protected] ~]# yum install wget [[email protected] ~]# mkdir -p /server/tools/ [[email protected]tools]# cd /server/tools/ [[email protected] tools]# wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
2) 解壓編譯安裝
對壓縮包進行解壓和安裝,但解壓前,需要確認安裝了make和gcc。
[[email protected] tools]# yum install make gcc gcc-c++
還有,centOS7在編譯安裝Python3.7是,會缺少一個'ctypes'的檔案,詳細原因見這裡。因此需要安裝上這個軟體包
yum -y install libffi-devel
之後就是對Python-3.7.1.tgz進行解壓安裝
[[email protected] tools]# yum install make gcc gcc-c++ [[email protected] tools]# tar -xf Python-3.7.1.tgz [[email protected] tools]# cd Python-3.7.1 [[email protected] Python-3.7.1]# ./configure [[email protected] Python-3.7.1]# make [[email protected] Python-3.7.1]# make install
注意,如果make之後出現這樣的錯誤“make *** 沒有指明目標並且找不到 makefile。 停止”,說明你忘記執行./configure,執行以下,再make,這裡參考了這篇文章。
3) 安裝完成,需要更改預設的python版本
# 檢查當前預設的python2,預設自帶的python位置在”/usr/bin/“目錄下
[[email protected] Python-3.7.1]# ll /usr/bin/python* -rwxr-xr-x 2 root root 9032 11月 22 2013 /usr/bin/python lrwxrwxrwx. 1 root root 6 3月 20 2016 /usr/bin/python2 -> python -rwxr-xr-x 2 root root 9032 11月 22 2013 /usr/bin/python2.7
# 檢查新安裝的python3,預設編譯安裝的python位置在”/usr/local/bin/“目錄下
[[email protected] ~]# ll /usr/local/bin/python* lrwxrwxrwx. 1 root root 9 12月 18 15:28 /usr/local/bin/python3 -> python3.7 -rwxr-xr-x. 2 root root 13979632 12月 18 15:28 /usr/local/bin/python3.7 lrwxrwxrwx. 1 root root 17 12月 18 15:28 /usr/local/bin/python3.7-config -> python3.7m-config -rwxr-xr-x. 2 root root 13979632 12月 18 15:28 /usr/local/bin/python3.7m -rwxr-xr-x. 1 root root 3097 12月 18 15:28 /usr/local/bin/python3.7m-config lrwxrwxrwx. 1 root root 16 12月 18 15:28 /usr/local/bin/python3-config -> python3.7-config
# 修改預設的python
# 刪除舊的python的軟連線,建立新的python2和python3的軟連線
[[email protected] Python-3.6.2]# cd /usr/bin/ [[email protected] bin]# rm -f python2 [[email protected] bin]# mv python python2.6.ori #這裡是參考別人的,但實際我的版本並沒有這個檔案,可能我忘了。 [[email protected] bin]# ln -s python2.7 python2 [[email protected] bin]# ln -s /usr/local/bin/python3 /usr/bin/python
最後會形成這樣
[[email protected] ~]# ll /usr/bin/python* lrwxrwxrwx. 1 root root 22 12月 18 15:31 /usr/bin/python -> /usr/local/bin/python3 lrwxrwxrwx. 1 root root 9 12月 18 15:41 /usr/bin/python2 -> python2.7 -rwxr-xr-x. 1 root root 7216 4月 11 2018 /usr/bin/python2.7
2.後續軟體問題
# python的預設版本修改為3.x之後,系統對於yum的呼叫會出問題,所以需要修改下yum的相關配置
[[email protected] bin]# vim /usr/bin/yum
# 需要檢查確認以下配置
#!/usr/bin/python2
# 這樣,修改後的yum依然可以呼叫python2.6.6的python,在使用yum安裝軟體時就不會報錯了
# 以上是在CentOS6.5系統上進行的python版本升級,CentOS7.2上面的預設python版本為2.7.5,可以使用相同的方法進行修改,不過CentOS7.2的python連結稍有不同,需要注意
[[email protected] ~]# ll /usr/bin/python* lrwxrwxrwx. 1 root root 7 10月 26 2016 /usr/bin/python -> python2 lrwxrwxrwx. 1 root root 9 10月 26 2016 /usr/bin/python2 -> python2.7 -rwxr-xr-x. 1 root root 7136 11月 20 2015 /usr/bin/python2.7
# 另外就是,CentOS7.2還有另外一個檔案需要修改
[[email protected] ~]# vim /usr/libexec/urlgrabber-ext-down
# 檢查確認以下配置:
#!/usr/bin/python2