- 測試工程師Python開發實戰
- 胡通編著
- 1309字
- 2023-06-29 17:21:42
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版本進行安裝。
- Learning ROS for Robotics Programming(Second Edition)
- 工程軟件開發技術基礎
- MySQL 8從入門到精通(視頻教學版)
- 云原生Spring實戰
- 深度學習:算法入門與Keras編程實踐
- Hands-On Automation Testing with Java for Beginners
- Python深度學習:基于TensorFlow
- HTML5從入門到精通(第4版)
- ElasticSearch Cookbook(Second Edition)
- C#開發案例精粹
- ASP.NET程序開發范例寶典
- 軟件測試技術
- JavaScript Concurrency
- Developing Java Applications with Spring and Spring Boot
- Clojure編程樂趣