需求:
centos環境,python2.7需要升級為python3.x
1.請先手動(再次)安裝 openssl 。否則你升級之后,你的pip不能下載,會各種報錯的。
比如這種錯誤:
ImportError: Entry point ('console_scripts', 'easy_install') not found
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not avail
pip報錯帖子1, pip報錯帖子2, pip報錯帖子3,報錯帖子4
執行 pip -V 檢查 pip是pip2的還是pip3的。
隨便安裝一個模塊,看看是否會報錯。(我們假設你這里是指向pip3的pip命令,因為你已經安裝了Python3嘛)
比如:
pip install lxml
如何安裝 openssl,請看這里:https://www.cnblogs.com/music-liang/p/11888672.html
安裝完openssl之后,請繼續往下看:
如果你對 環境變量了解,對軟鏈接不熟悉,請先看完這個介紹:
環境變量:
linux下面可以直接運行的某些命令,是因為這些命令都在 環境變量 指定的路徑下面,而這個路徑,就是 /usr/bin/ 。
例如 /usr/bin/ 下面有一個python文件,那么,你就可以正常地在終端(terminal)運行 python命令
[root@VM_0_10_centos python3]# ls -la /usr/bin | grep python lrwxrwxrwx 1 root root 7 Mar 26 2018 python -> python2.7 lrwxrwxrwx 1 root root 9 Mar 26 2018 python2 -> python2.7 -rwxr-xr-x 1 root root 7136 Aug 4 2017 python2.7
軟鏈接(快捷方式):
就類似於windows里面的快捷方式。 軟連接相關命令是 ln -s 。具體請參考這里。
你會發現,我這里有2個軟鏈接(快捷方式),分別是python, python2( 有 -> 符號的那2個),它們都是python2.7這個文件的軟鏈接(快捷方式)。
我們待會會安裝python3,然后在這里 ( /usr/bin )放一個名叫python的軟連接(快捷方式)。
目前,請先不要刪除。。。安裝完成后再來做這一步操作。
環境變量和軟連接的介紹到此完畢,下面進入正題:
用root權限賬號登錄,執行下面的安裝名。
1.下載最新版本的python
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
2.解壓。解壓出來的文件是Python-3.8.0(不同版本,名稱不一樣)
tar -zxvf Python-3.8.0.tgz
3.進入Python-3.8.0文件夾
cd Python-3.8.0
4.創建Python3的安裝路徑
mkdir /usr/local/python3
5.運行(Python-3.8.0文件夾)里面的配置腳本
./configure --prefix=/usr/local/python3 --enable-optimizations --with-openssl=/usr/local/openssl/
6.編譯 (直接輸入make命令,按下回車鍵就好)
make
make test
6.1可能的報錯:
我安裝3.5版的時候,沒有報錯。但是安裝3.7版本的時候,有個報錯
錯誤如下:
Failed to build these modules:_ctypes binascii
解決方案,安裝 libffi-devel
yum install libffi-devel -y
如果你在剛才的過程中出錯了,請記得在安裝了 libffi-devel之后執行 make clean 清理工程;然后重新make 編譯工程。
7.安裝
make install
8.如果報錯了
8.1.如果是 zlib錯誤,請安裝 zlib
可能的報錯信息:
zipimport.ZipImportError: can't decompress data; zlib not available make: *** [install] Error 1
安裝 zlib命令如下:
yum -y install zlib*
8.2 如果是其他的報錯,請仔細閱讀報錯的英文信息,動手解決問題。
或者去互聯網上搜素,如何解決這個報錯。
問題解決之后,執行 make install ,安裝python3.
9.到這里,假設您已經成功安裝了python3
此時查看python,你會看到,還是之前的python2.x。
因為python3還未加入到環境變量下面,系統沒法運行python3。
10.刪除 環境變量 (/usr/bin)下面的 python 軟鏈接(快捷方式),創建Python3的軟鏈接(快捷方式)
如果你不清楚這里說的環境變量(/usr/bin),軟鏈接等概念,請回到開頭再看看前面提到的信息。
刪除舊的python快捷方式(之前由python2創建的) rm /usr/bin/python
創建我們Python3的軟鏈接(快捷方式),這次我們創建2個
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/python3 /usr/bin/python
11.輸入終端(terminal) python -V ,來驗證 python3是否安裝成功。
你還可以輸入python3 -V,會有同樣的效果,這個也是合法的命令。
12.yum 被影響了,修改回來
/usr/bin/yum
/usr/libexec/urlgrabber-ext-down
yum需要python2.x來解釋執行。
這2個文件的第1行,將python 改為 python2.7(如果你的2.x版本不同,就輸入你的python名稱)
請好好理解 環境變量、軟鏈接(快捷方式)的概念。你就會知道如何修改這里了。
13.大功告成
祝你學習進步,學有所成。