天天看點

Python安裝報錯:”ModuleNotFoundError:No module named _ctypes“ 的解決方案總結安裝過程

目錄

第一步:下載下傳安裝包

第二步:執行安裝

1、建立存放目錄

2、運作腳本configure

3、make編譯make install安裝 

4、最後運作make clean

第三步:建立軟連接配接

總結安裝過程

總結報錯解決

第一步:下載下傳安裝包

# 下載下傳位址: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 
           

第二步:執行安裝

1、建立存放目錄

 mkdir /usr/local/python3  
           

2、運作腳本configure

configure是一個shell腳本,根據平台的特性生成Makefile檔案,為下一步的編譯做準備。可以通過在 configure 後加上參數來對安裝進行控制,比如下面就是指定安裝目錄/usr/local/python3。如果沒有用這個選項,安裝過程結束後,該軟體所需的軟體被複制到不同的系統目錄下,比較混亂。

例如我們執行如下指令:

cd Python-3.7.1 

./configure --prefix=/usr/local/python3 --with-ssl 
           
"--enable-optimizations"這個參數會啟用配置檔案引導的優化(PGO)和連結時間優化(LTO)。兩者都是昂貴的優化,會減慢建構過程,但會顯着提高速度(我記得閱讀的内容大約有10-20%)。
./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)生成的執行檔案和所有的中間目标檔案)

第三步:建立軟連接配接

​
[[email protected] local] ln -s /usr/local/python3/bin/python3 /usr/bin/python3

[[email protected] local] ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
           

最後運作python3檢視是否安裝成功

[[email protected] local] python3
           

總結安裝過程

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

./configure  # 檢查編譯環境/相關庫檔案/配置參數,生成makefile

make       # 對源代碼進行編譯,生成可執行檔案

make install  # 将生成的可執行檔案安裝到目前計算機中特點;
           

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

總結報錯解決

問題一:安裝時報錯ModuleNotFoundError: No module named '_ctypes'的解決辦法

1、執行如下指令:

yum install libffi-devel 
           

2、從"./configure ..."重新安裝

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

先安裝openssl-dev,然後重新編譯安裝,隻是在編譯的過程中加入 

--enable-optimizations

ubuntu:

sudo apt-get install libffi-dev
           

或者

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus

sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev

sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev

sudo apt-get install libssl-dev openssl

sudo apt-get install libffi-dev
           

centos7

yum install libffi-devel -y
           

繼續閱讀