Python3的安裝方式很是的簡單,首先去到Python下載目錄下載想要的Python包,這裏我選擇了3.6.5版本python
$ wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz --2018-06-26 07:38:46-- https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz Resolving www.python.org (www.python.org)... 151.101.24.223, 2a04:4e42:2e::223 Connecting to www.python.org (www.python.org)|151.101.24.223|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 22994617 (22M) [application/octet-stream] Saving to: ‘Python-3.6.5.tgz’ 100%[=====================================================================================================================================================>] 22,994,617 1.16MB/s in 14s 2018-06-26 07:39:01 (1.57 MB/s) - ‘Python-3.6.5.tgz’ saved [22994617/22994617]
而後解壓縮:vim
$ tar -xzvf Python-3.6.5.tgz
開始編譯安裝:app
$ cd Python-3.6.5/ $ ./configure ... ... config.status: creating Makefile.pre config.status: creating Modules/Setup.config config.status: creating Misc/python.pc config.status: creating Misc/python-config.sh config.status: creating Modules/ld_so_aix config.status: creating pyconfig.h creating Modules/Setup creating Modules/Setup.local creating Makefile If you want a release build with all stable optimizations active (PGO, etc), please run ./configure --enable-optimizations
能夠看到最後有一行很醒目的提示,這行提示能夠忽略,它的意義是是否想要編譯一個容許各類優化(例如PGO——Profile-guided optimization,這是GCC支持的一個優化選項,能夠提高程序性能,有興趣的同窗能夠自行谷歌)的版本,若是想要,能夠運行 ./configure --enable-optimizations。我這裏選擇忽略,繼續編譯:less
$ make
$ sudo make install zipimport.ZipImportError: can't decompress data; zlib not available make: *** [install] Error 1
出現了報錯,缺乏zlib,直接安裝下:python2.7
$ sudo yum install zlib*
繼續安裝:ide
$ sudo make install
到這一步還不行,用python --version看到的版本仍是老的:性能
$ python --version Python 2.7.5 $ which python /usr/bin/python $ ls -lh /usr/bin | grep python lrwxrwxrwx 1 root root 7 Apr 1 11:46 python -> python2 lrwxrwxrwx 1 root root 9 Apr 1 11:46 python2 -> python2.7 -rwxr-xr-x 1 root root 7.0K Aug 4 2017 python2.7
能夠看到默認的python程序指向了python2.7,因此須要刪除這個軟鏈接,創建新版本的軟鏈接:優化
$ ls -lh /usr/local/bin/ | grep python lrwxrwxrwx 1 root root 9 Jun 26 08:12 python3 -> python3.6 -rwxr-xr-x 2 root root 13M Jun 26 08:11 python3.6 lrwxrwxrwx 1 root root 17 Jun 26 08:12 python3.6-config -> python3.6m-config -rwxr-xr-x 2 root root 13M Jun 26 08:11 python3.6m -rwxr-xr-x 1 root root 3.1K Jun 26 08:12 python3.6m-config lrwxrwxrwx 1 root root 16 Jun 26 08:12 python3-config -> python3.6-config $ sudo rm /usr/bin/python $ sudo ln -s /usr/local/bin/python3 /usr/bin/python $ python --version Python 3.6.5
能夠看到,創建映射以後,python版本目前爲3.6.5,到這裏還沒完,pip仍是指向了原來的版本:ui
$ pip --version pip 10.0.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)
一樣的,查看下pip的位置:url
$ which pip /usr/bin/pip $ ls -lh /usr/bin/ | grep pip -rwxr-xr-x. 1 root root 2.3K Jul 31 2015 lesspipe.sh -rwxr-xr-x 1 root root 215 Jun 25 09:12 pip -rwxr-xr-x 1 root root 215 Jun 25 09:12 pip2 -rwxr-xr-x 1 root root 215 Jun 25 09:12 pip2.7 $ ls -lh /usr/local/bin/ | grep pip -rwxr-xr-x 1 root root 214 Jun 26 08:12 pip3 -rwxr-xr-x 1 root root 214 Jun 26 08:12 pip3.6
/usr/bin/pip不是一個軟鏈接,因此不直接刪除,作個備份:
$ sudo mv /usr/bin/pip /usr/bin/pip2_for_python2.7_bak $ ls -lh /usr/bin/ | grep pip -rwxr-xr-x. 1 root root 2.3K Jul 31 2015 lesspipe.sh -rwxr-xr-x 1 root root 215 Jun 25 09:12 pip2 -rwxr-xr-x 1 root root 215 Jun 25 09:12 pip2.7 -rwxr-xr-x 1 root root 215 Jun 25 09:12 pip2_for_python2.7_bak
而後創建軟鏈接:
$ sudo ln -s /usr/local/bin/pip3 /usr/bin/pip $ pip --version pip 9.0.3 from /usr/local/lib/python3.6/site-packages (python 3.6)
pip版本也成功的切換了,後續可能還會遇到一些相似的python路徑問題,均可以依此解決。
安裝成功以後,使用yum的時候會出現報錯:
$ sudo yum install zip File "/bin/yum", line 30 except KeyboardInterrupt, e: ^
這是由於yum的包管理,是基於python2.x寫的,跟python3有語法上的不兼容。
這個時候能夠修改下yum的配置文件:
$ sudo vim /usr/bin/yum
將第一行的「#!/usr/bin/python」 改成 「#!/usr/bin/python2.7」
相似的,一樣修改下/usr/libexec/urlgrabber-ext-down。