首頁 > 軟體

Linux下Python2.7原始碼編譯安裝

2020-06-16 16:49:58

最近學習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


IT145.com E-mail:sddin#qq.com