Linux下大部分系統默認自帶python2.x的版本,最多見的是python2.6或python2.7版本,默認的python被系統不少程序所依賴,好比centos下的yum就是python2寫的,因此默認版本不要輕易刪除,不然會有一些問題,若是須要使用最新的Python3那麼咱們能夠編譯安裝源碼包到獨立目錄,這和系統默認環境之間是沒有任何影響的,python3和python2兩個環境並存便可python
首先去python官網下載python3的源碼包,網址:https://www.python.org/linux
進去以後點擊導航欄的Downloads,也能夠鼠標放到Downloads上彈出菜單選擇Source code,表示源碼包,這裏選擇最新版本3.5.1,固然下面也有不少其餘歷史版本,點進去以後頁面下方能夠看到下載連接,包括源碼包、Mac OSX安裝包、Windows安裝包sql
這裏選擇第一個下載便可,下載的就是源碼包:Python-3.5.1.tgz,下載好以後上傳到linux系統,準備安裝centos
python安裝以前須要一些必要的模塊,好比openssl,readline等,若是沒有這些模塊後來使用會出現一些問題,好比沒有openssl則不支持ssl相關的功能,而且pip3在安裝模塊的時候會直接報錯;沒有readline則python交互式界面刪除鍵和方向鍵都沒法正常使用,至於須要什麼模塊在make完以後python會給出提示,經過提示進行安裝便可裝全, 另外感謝園友的Glory_Lion的回覆;下面是須要提早預裝的依賴:python3.x
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 yum -y install libffi libffi-devel
安裝上面這些python內置模塊基本上就比較全了,若是後續有其餘必要的模塊,會繼續補充的,接下來能夠安裝python了,編譯過程當中會自動包含這些依賴.python2.7
釋放文件:spa
tar -xvzf Python-3.5.1.tgz
進入目錄:調試
cd Python-3.5.1/
配置編譯,由於上面依賴包是用yum安裝而不是本身編譯的,因此都是安裝在系統默認目錄下,所以各類選項不用加默認便可生效:code
./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運行時目錄中便可. sqlite
接下來編譯源碼:
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
這樣就創建好了,之後直接執行python3命令就能夠調用python3了,執行pip3能夠安裝須要的python3模塊;另外若是仔細看python安裝目錄下的bin目錄,實際上python3也是個軟連接,連接到python3.5.1,這樣屢次連接也是爲了多個版本的管理更加方便,
python3新版本的安裝就是這些,由於咱們以前安裝了完整的依賴,因此下面問題不存在了,忽略便可,其中的python readline模塊也早已經中止更新了,會出現崩潰問題;這裏基礎環境都是使用系統的依賴,更穩定.
--------------------------------------------華麗的分割線---------------------------------------------------
另外可能會遇到一個問題就是,python3交互式界面特別很差用,刪除不能正常使用,必須按Ctrl+刪除鍵才能夠,上下鍵重複命令也沒法使用,左右調整光標也沒法使用,這樣調試代碼效率很低,緣由是python3缺乏readline這個依賴,默認使用pip3 install readline會提示找不到包,因此只能是手動安裝了
由於readline依賴於ncurses庫,若是沒有這個庫,編譯readline的時候會提示can not find -lncurses,若是在centos環境下能夠執行下面命令安裝:
yum -y install ncurses ncurses-devel
安裝ncurses庫以後,再安裝readline,readline能夠在pypi下載,地址:https://pypi.python.org/pypi/readline,這裏必定要下載源碼包,其他的只能用於python2,下載以後執行下面命令安裝:
tar -xvzf readline-6.2.4.1.tar.gz cd readline-6.2.4.1/ python3 setup.py install
這樣執行完畢就爲python3安裝了readline,而後再進入交互式界面全部的操做都好用了