官术网_书友最值得收藏!

1.2.1 Python安裝

本書中使用的服務器操作系統為CentOS Linux release 7.6.1810 (Core),其內核發行版本為3.10.0,如圖1-4所示。

圖1-4 服務器操作系統版本

在默認情況下,CentOS安裝的Python版本為2.7.5,如圖1-5所示。

圖1-5 服務器操作系統默認Python版本

下面就將該Python 2.7.5升級到Python 3.9.8,主要步驟如下。

(1)下載源碼tar包。我們先從官網上下載Python 3.9.8的源碼包,如圖1-6所示,上傳后進行離線安裝。當然如果有外網,那直接通過wget命令即可下載。

圖1-6 Python 3.9.8的源碼包

(2)安裝基礎庫。首先是需要在CentOS服務器上安裝或更新一些基礎庫,例如gcc(提供源碼編譯環境)、zlib(提供多種壓縮和解壓縮的方式)、OpenSSL(一個強大的安全套接字層密碼庫,包括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協議)。命令為yum install -y gcc zlib-devel zlib openssl-devel。其中,CentOS里使用yum作為包管理工具,-y選項表示不需要手動確認是否安裝該指定包。

(3)解壓離線上傳的Python源碼壓縮包,命令為tar –xvzf Python-3.9.8.tar.gz。

(4)新建Python的安裝目錄,命令為mkdir /usr/local/Python-3.9.8。

(5)配置安裝Python的安裝目錄和生成makefile文件。先進入解壓Python后的目錄,然后執行configure命令,進行源碼安裝路徑的配置,命令為./configure --prefix=/usr/local/Python-3.9.8/。常見選項為--prefix,用于指定安裝的路徑;--enable-optimizations是優化選項,加上這個選項編譯后,性能可以優化10%左右(建議不要加,原因下面會提到)。

通常,Python 3.9.8配置成功的界面如圖1-7所示。

圖1-7 Python 3.9.8配置成功的界面

提示

遇到錯誤:在配置的時候加了--enable-optimizations,結果編譯安裝的時候出現“Could not import runpy module”的安裝錯誤。

報錯原因:默認CentOS的gcc編譯器的版本為4.8.5,該版本過低。

解決方法:

升級gcc到高版本,gcc 8.1.0已修復此問題,但此方法會有兼容性問題;

./configure參數中去掉-enable-optimizations,建議用此方法。

(6)開始源碼編譯和安裝,命令為make或make install。如果前面配置錯誤,重新配置后,要先執行make clean命令,清除上次的make命令所產生的object文件(擴展名為“.o”的文件)及可執行文件。另外,此步驟可能會消耗一定的時間,只要不報錯,我們耐心等待即可。

若安裝成功,還需安裝或更新pip和setuptools這兩個基礎庫,本書中使用的pip和setuptools版本如圖1-8所示,這都是比較新的版本,所以暫時不更新。

圖1-8 pip和setuptools版本

大家若想更新到最新版本,可下載最新版本,再傳入無網的服務器環境并解壓,解壓后進入setuptools或pip目錄,執行python setup.py install命令,即可完成更新安裝。

(7)最后,進入/usr/local/目錄可以看到已經安裝成功,Python的安裝目錄如圖1-9所示。

圖1-9 Python的安裝目錄

(8)為了在任何目錄下輸入python命令都能執行,還需要做個軟連接。首先備份原來的Python 2.7.5的默認解釋器,命令為mv /usr/bin/python /usr/bin/python2.7.5。然后把新版本的Python 3.9.8進行軟連接,命令為ln -s /usr/local/Python-3.9.8/bin/python3.9 /usr/bin/python。

(9)驗證是否生效。在任何目錄下,輸入python,如圖1-10所示則表示驗證成功。

圖1-10 驗證成功

(10)確保升級Python版本后無異常。在后續使用CentOS的過程中,我們通過yum命令安裝一些其他軟件庫的時候,可能會報異常“yum異常:File "/usr/bin/yum", line 30”。為了解決該問題,需要用vi命令打開/usr/bin/yum和/usr/libexec/urlgrabber-ext-down這兩個文件,將第一行“#!/usr/bin/python”改為“#!/usr/bin/python2.7.5”,即使用原來服務器默認的Python版本。

yum

yum是基于Python編寫的,采用Python作為命令解釋器,這可以從/usr/bin/yum文件中第一行“#!/usr/bin/python”發現。而Python版本之間兼容性不太好,使得2.X版本與3.X版本之間存在語法不一致問題。CentOS 7自帶的yum采用的是Python 2.7.5,因此當系統將Python升級到3.9.8版本后,會出現語法解釋錯誤。

至此,我們完成了Python 3.9.8的離線方式的源碼編譯安裝,大家可以根據自己需求選擇任何Python版本進行安裝。

主站蜘蛛池模板: 乐安县| 清流县| 托里县| 榕江县| 玉环县| 阿拉善右旗| 博客| 广东省| 江达县| 武清区| 拉孜县| 肇庆市| 凤城市| 祁门县| 额敏县| 聊城市| 泰来县| 定远县| 全椒县| 鹿邑县| 高州市| 云霄县| 临漳县| 三亚市| 马边| 皋兰县| 江源县| 枞阳县| 射阳县| 万荣县| 合川市| 漠河县| 邳州市| 比如县| 宁阳县| 图们市| 岱山县| 嵊泗县| 株洲县| 达尔| 浮梁县|