CentOS7 安裝Python3

本文主要介紹在CentOS7上通過源碼編譯的方式案頭Python3, 文中用到的是CentOS7.2, Python版本是3.6.7,其他類似版本的處理也是大致相同的.

在安裝Python3之前需要解決兩個問題:

  • 一是 開發(fā)環(huán)境安裝,比如gcc等
  • 二是 openssl的安裝, 因為CentOS自帶的openssl版本比較低,導(dǎo)致Python3安裝完后,在python命令行中執(zhí)行import ssl會報錯:ImportError: No module named _ssl。

特別是第二個ssl錯誤,相信很多人都遇到過,我自己也在這個問題上糾纏了很長時間, 現(xiàn)在將親測有效的解決方案分享給大家。

1.安裝開發(fā)環(huán)境依賴

sudo yum -y groupinstall development
sudo yum -y install zlib-devel
sudo yum -y install libffi-devel

2.更新openssl

先通過命令看看筷的openssl版本,如果返回是0.9.x, 那肯定需要升級了

openssl version

按照如下方式升級openssl

wget http://www.openssl.org/source/openssl-1.0.2e.tar.gz
tar xvzf openssl-1.0.2e.tar.gz
cd openssl-1.0.2e
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make
make test
make install

到這openssl安裝完成了, 接下來可以開始編譯安裝Python3了, 注意我們指定的openssl安裝路徑是在/usr/local/openssl, 這個后面要用到。

3.安裝Python3

  • 先下載解壓Python3.6.7安裝包
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz
tar xvzf Python-3.6.7.tgz
cd Python-3.6.7
  • 然后修改Setup.dist, 指定ssl位置
vi Modules/Setup.dist

搜索ssl, 取消以下幾行注釋, 并且修改SSL的值為我們實際安裝openssl的值, 即:/usr/local/openssl

_socket socketmodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/openssl
_ssl _ssl.c \
 -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
 -L$(SSL)/lib -lssl -lcrypto

注: 網(wǎng)上很多說在./configure 后面加--with-openssl的方法來指定openssl的方法自測無效, 通過修改Setup.dist方才生效。

  • 完成以上修改后,即可開始編譯Python3, 命令如下。
./configure
make
make install

4.驗證Python3

python3
import ssl

正常不會報錯, 則Python3安裝成功。
另外,給大家推薦一個Python虛擬環(huán)境的包pipenv, 強(qiáng)大又好用, 大家可以試試。

python3 -m pip install pipenv

至此,CentOS7上安裝Python3完畢。
這個是我參考的文章,感謝前人的分享!How to Compile and Install Python with OpenSSL Support?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容