【Linux】CentOS6上安裝Python3.7(config、make、make install)及“No module named '_ctypes'”/pip install時“ssl module in Python is not available.”的解決


1.下載安裝包

https://www.python.org/ftp/python/ 該目錄下選擇所需要的版本進行下載、解壓。

 wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz 

 tar -xzvf Python-3.7.1.tgz 

 

2.二進制文件安裝

  1.創建存放目錄

 mkdir /usr/local/python3  

  2.運行腳本configure

config是一個shell腳本,根據平台的特性生成Makefile文件,為下一步的編譯做准備。

可以通過在 configure 后加上參數來對安裝進行控制,比如下面就是指定安裝目錄/usr/local/python3。

如果沒有用這個選項,安裝過程結束后,該軟件所需的軟件被復制到不同的系統目錄下,比較混亂。
  cd Python-3.7.1 

 ./configure --prefix=/usr/local/python3 --with-ssl 

./configure --enable-optimizations --prefix=/usr/local/python3

 

可以通過 ./configure --help 查看詳細的說明幫助。

  3.make編譯make install安裝 

※如果有需要,會進行 make depend(一種makefile的規則,通過掃描一個目錄下的所有C\C++ 代碼,從而判斷出文件之間的依賴關系,如a.cc文件中調用了b.h(如以形勢include<b.h>),如果之后a.cc文件被改動,那么只需要重新編譯a.cc文件,不需要編譯b.h文件。否則所有的文件都需要重新編譯)

 

從Makefile中讀取指令,根據makefile制定的規則,將c\c++文件編譯成*.o文件,然后進一步生成可執行文件。大多數的源代碼包都經過這一步進行編譯,(當然有些perl或python編寫的軟件需要調用perl或python來進行編譯)。

 make && make altinstall 

如果 在make過程中出現 error ,你就要記下錯誤代碼(注意不僅僅是最后一行),然后你可以向開發者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系統少了一些依賴庫等,這些需要自己仔細研究錯誤代碼。

  4.最后運行make clean

刪除一些臨時文件(刪除源代碼(C\C++ code)生成的執行文件和所有的中間目標文件)

 

3.創建軟連接

 1 ln -s /usr/local/python3/bin/python3 /usr/bin/python3 2 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 

最后運行python3查看是否安裝成功

 

4.總結安裝過程

絕大數開源軟件都是公布源代碼的,源代碼一般被打包為tar.gz歸檔壓縮文件,然后手工編譯為二進制可執行文件

  1. ./configure  檢查編譯環境/相關庫文件/配置參數,生成makefile
  2. make      對源代碼進行編譯,生成可執行文件
  3. make install    將生成的可執行文件安裝到當前計算機中特點;

兼容性好/可控制性好/開源軟件會大量使用其他開源軟件的功能,要解決大量的依賴關系

 

5.安裝時報錯ModuleNotFoundError: No module named '_ctypes'的解決辦法

  yum install libffi-devel 

然后從config開始重新安裝

 

6.pip3 install時報錯“pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.”

先安裝openssl-dev,然后重新編譯安裝,只是在編譯的過程中加入 --enable-optimizations

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM