一、下載源碼包Python-3.5.1.tgz
二、安裝依賴包
yum -y install zlib zlib-devel
yum -y install bzip2 bzip2-devel
yum -y install ncurses ncurses-devel
yum -y install readline readline-devel
yum -y install openssl openssl-devel
yum -y install openssl-static
yum -y install xz lzma xz-devel
yum -y install sqlite sqlite-devel
yum -y install gdbm gdbm-devel
yum -y install tk tk-devel
釋放文件:
tar -xvzf Python-3.5.1.tgz
進入目錄:
cd Python-3.5.1/
配置編譯,因為上面依賴包是用yum安裝而不是自己編譯的,所以都是安裝在系統默認目錄下,因此各種選項不用加默認即可生效:
./configure --prefix=/usr/python --enable-shared CFLAGS=-fPIC
補充一下:這里加上--enable-shared和-fPIC之后可以將python3的動態鏈接庫編譯出來,默認情況編譯完lib下面只有python3.xm.a這樣的文件,python本身可以正常使用,但是如果編譯第三方庫需要python接口的比如caffe等,則會報錯;所以這里建議按照上面的方式配置,另外如果openssl不使用系統yum安裝的,而是使用自己編譯的比較新的版本可以使用--with-openssl=/usr/local/openssl這種方式指定,后面目錄為openssl實際安裝的目錄,另外編譯完還要將openssl的lib目錄加入ld運行時目錄中即可.
接下來編譯源碼:
make
執行安裝:
make install
整個過程大約5-10分鍾,安裝成功之后,安裝目錄就在/usr/python
安裝完成之后要簡單做一下配置:即將python庫路徑添加到/etc/ld.so.conf配置中,然后執行ldconfig生效;或者添加到$LD_LIBRARY_PATH中,這樣在接下來運行python3是就不會報找不到庫文件的錯誤了.
系統中原來的python在/usr/bin/python,通過ls -l可以看到,python是一個軟鏈接,鏈接到本目錄下的python2.7
這里不要把這個刪除,不對原來默認的環境做任何修改,只新建一個python3的軟鏈接即可,只是需要執行python3代碼時python要改成python3,或者python腳本頭部解釋器要改為#!/usr/bin/python3
這里建立有關的軟鏈接如下:ln -s /usr/python/bin/python3 /usr/bin/python3
ln -s /usr/python/bin/pip3 /usr/bin/pip3
因為readline依賴於ncurses庫,如果沒有這個庫,編譯readline的時候會提示can not find -lncurses,如果在centos環境下可以執行下面命令安裝:
yum -y install ncurses ncurses-devel
tar -xvzf readline-6.2.4.1.tar.gz
cd readline-6.2.4.1/
python3 setup.py install
注意:
在安裝python之前都必要模塊里面需要加一條:
yum isntall gcc
然后在按照博客流程來,就不會在configure那里報錯了