https://www.python.org/ftp/python/ 該目錄下選擇所須要的版本進行下載、解壓。python
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz c++
tar -xzvf Python-3.7.1.tgz shell
mkdir /usr/local/python3 ui
config是一個shell腳本,根據平臺的特性生成Makefile文件,爲下一步的編譯作準備。spa
能夠經過在 configure 後加上參數來對安裝進行控制,好比下面就是指定安裝目錄/usr/local/python3。code
./configure --prefix=/usr/local/python3 --with-ssl blog
./configure --enable-optimizations --prefix=/usr/local/python3
能夠經過 ./configure --help 查看詳細的說明幫助。ip
※若是有須要,會進行 make depend(一種makefile的規則,經過掃描一個目錄下的全部C\C++ 代碼,從而判斷出文件之間的依賴關係,如a.cc文件中調用了b.h(如以形勢include<b.h>),若是以後a.cc文件被改動,那麼只須要從新編譯a.cc文件,不須要編譯b.h文件。不然全部的文件都須要從新編譯)ssl
從Makefile中讀取指令,根據makefile制定的規則,將c\c++文件編譯成*.o文件,而後進一步生成可執行文件。大多數的源代碼包都通過這一步進行編譯,(固然有些perl或python編寫的軟件須要調用perl或python來進行編譯)。開發
make && make altinstall
若是 在make過程當中出現 error ,你就要記下錯誤代碼(注意不單單是最後一行),而後你能夠向開發者提交 bugreport(通常在 INSTALL 裏有提交地址),或者你的系統少了一些依賴庫等,這些須要本身仔細研究錯誤代碼。
刪除一些臨時文件(刪除源代碼(C\C++ code)生成的執行文件和全部的中間目標文件)
1 ln -s /usr/local/python3/bin/python3 /usr/bin/python3 2 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
最後運行python3查看是否安裝成功
絕大數開源軟件都是公佈源代碼的,源代碼通常被打包爲tar.gz歸檔壓縮文件,而後手工編譯爲二進制可執行文件
兼容性好/可控制性好/開源軟件會大量使用其餘開源軟件的功能,要解決大量的依賴關係
yum install libffi-devel
而後從config開始從新安裝
先安裝openssl-dev,而後從新編譯安裝,只是在編譯的過程當中加入 --enable-optimizations