2021-05-12 14:32:11
Linux下Python2.7原始碼編譯安裝
最近學習docker容器,因為平時用的linux髮型版都是CentOS6系列,所有pull了一個centos:6.6的景像,執行景像,進入容器後,發現其預設的Python環境是2.6,為了更好的相容我們公司的一些指令碼,要升級python版本至少為2.7。下面就是升級python的過程以及可能遇到的問題。
1.首先要安裝一些必要的庫
centos6.6的docker容器中是沒有gcc庫的,首先安裝gcc庫
yum install gcc
安裝其他必要庫,這些庫要在編譯python原始碼前安裝,在後續安裝pip的過程中因為缺失這些導致重新編python譯原始碼n次,著實煩惱啊。
yum install zlib
yum install zlib-devel
yum install openssl
yum install openssl-devel
2.下載python原始碼包及其他必要工具包
首先下載python原始碼包,官網下載地址 https://www.python.org/downloads
wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz
解壓到指定目錄
tar -xzf Python-2.7.14.tgz
下載setuptool和pip(用來管理python依賴包)
wget https://pypi.python.org/packages/41/5f/6da80400340fd48ba4ae1c673be4dc3821ac06cd9821ea60f9c7d32a009f/setuptools-38.4.0.zip#md5=3426bbf31662b4067dc79edc0fa21a2e
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
3.編譯python原始碼
首先生成python安裝路徑,我這裡將安裝路徑放在/usr/local下面
mkdir /usr/local/python2.7
進入解壓的原始碼路徑,執行下面命令生成Makefile
./configure --enable-optimizations --prefix=/usr/local/python2.7/
--enable-optimizations 為最優安裝,建議使用這個引數。--prefix 宣告安裝路徑
修改 Modules/Setup 檔案,修改內容如下
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl
-L$(SSL)/lib -lssl -lcrypto
預設這塊是注釋的,放開註釋即開。這塊功能是開啟SSL模組,不然會出現安裝完畢後,提示找不到ssl模組的錯誤。
Makefile生後依次在當前路徑執行編譯和安裝命令
make & make install
以上命令執行完畢,且無報錯的情況下,我們將預設python換將切換至2.7,保險起見現將軟鏈備份。
cd /usr/bin
mv python python.bak
建立新的軟鏈
ln -s /usr/local/python2.7/bin/python2.7 /usr/bin/python
執行命令python -V,檢視是否出現2.7的版本,出現即為安裝成功。
4.安裝pip工具
首先進入setuptools的解目錄,執行命令
python setup.py install
命令執行成功後,在進入pip-9.0.1的解壓目錄,執行命令
python setup.py install
至此,我們的升級工作完成。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址:https://www.linuxidc.com/Linux/2018-07/153195.htm
相關文章