1、下載源碼包並編譯安裝php
[root@iZtmm4mufhb0rgZ /]# wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz [root@iZtmm4mufhb0rgZ /]# tar xzvf Python-3.6.5.tgz [root@iZtmm4mufhb0rgZ /]# cd Python-3.6.5 [root@iZtmm4mufhb0rgZ /]# ./configure --enable-shared --prefix=/usr/local CFLAGS=-fPIC LDFLAGS="-Wl,-rpath /usr/local/lib" --with-ssl [root@iZtmm4mufhb0rgZ Python-3.6.5]# make -j24 && make install -------------------------安裝成功--------------------------------- Collecting pip Installing collected packages: setuptools, pip Successfully installed pip-9.0.3 setuptools-39.0.1
2、添加程序的軟鏈接python
自3.4版本起,setup_tools及pip工具自動安裝,因此不用再手動安裝了sql
[root@iZtmm4mufhb0rgZ Python-3.6.5]# sudo ln -sf /usr/local/bin/python3.6 /usr/bin/python3 [root@iZtmm4mufhb0rgZ Python-3.6.5]# sudo ln -sf /usr/local/bin/python3.6 /usr/bin/python3.6 [root@iZtmm4mufhb0rgZ Python-3.6.5]# sudo ln -sf /usr/local/bin/pip3.6 /usr/bin/pip3 [root@iZtmm4mufhb0rgZ Python-3.6.5]# sudo ln -sf /usr/local/bin/pip3.6 /usr/bin/pip3.6
遇到的錯誤以及解決方法:app
第一個坑:編譯安裝時報如下錯誤ide
zipimport.ZipImportError: can't decompress data; zlib not available make: *** [install] Error 1 ------------------------------------------------------------------- [root@iZtmm4mufhb0rgZ Python-3.6.5]# yum install -y zlib* ##解決辦法;安裝zlib軟件包從新編譯便可
第二個坑:執行命令報錯
工具
這兩類是一個錯誤,由於庫不在pyhon3這個程序能夠正確鏈接的地方fetch
[root@iZtmm4mufhb0rgZ Python-3.6.5]# sudo python3 python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory [root@iZtmm4mufhb0rgZ Python-3.6.5]# sudo pip3 install numpy /usr/local/bin/python3.6: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
有兩種解決方案,一種是在./configure加入LDFLAGS="-Wl,-rpath /usr/local/lib" 手動指定,另外一種是設定全局變量LD_LIBRARY_PATH。顯然第一種方案更好一些,第二種方案致使普通用戶程序感染root程序的執行,危害很大。ui
第三個坑:使用pip安裝模塊時提示找不到ssl模塊spa
緣由是:在./configure過程當中,若是沒有加上–with-ssl參數時,默認安裝的軟件涉及到ssl的功能不可用,恰好pip3過程須要ssl模塊,而因爲沒有指定,因此該功能不可用。sqlite
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. Could not fetch URL https:*******: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping ------------------------------------------------------------------------ ##解決辦法;./configure時加上--with-ssl選項 ##解決辦法2:缺乏依賴包 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel