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

至此,我們的升級工作完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM