CentOS7.6編譯安裝Python-3.7.4

安裝步驟

1. 下載安裝包。
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
<說明>若是報SSL/TSL錯誤,則加上 --no-check-certificate 選項
2. 解壓縮
tar -xzvf Python-3.7.4.tgz
cd Python-3.7.4
3. 配置
* 查看配置選項。
./configure --help
* 經常使用配置選項配置
--prefix=/usr/local/python3  #pyhton的安裝路徑
--with-openssl=/usr/local/openssl   #OpenSSL庫的安裝路徑
* 若是您想要一個包含全部穩定優化活動的版本構建,能夠添加下面的選項(不過通常不須要,這個配置檢查過程會很耗時的)
--enable-optimizations
* 查看系統是否安裝了OpenSSL
rpm -qa|grep -i openssl
* 查看OpenSSL版本
openssl version -a  #會顯示出OpenSSL的安裝路徑
* 個人安裝配置選項
./configure --prefix=/usr/local/python3  --with-openssl=/usr/local/openssl  --with-ssl-default-suites=pythonhtml

4. 編譯和安裝。
make && make installpython

設置環境變量

* 創建python命令的軟連接
ln -s /usr/local/python3/bin/python3.7 /usr/local/bin/python
* 修改/etc/profile,添加以下內容:
export PATH=$PATH:/usr/local/python3/bin
保存後,執行: source /etc/profile
* 執行命令查看安裝版本
# python --version
Python 3.7.4
* 直接運行Python命令,檢測是否安裝成功
# python
Python 3.7.4 (default, Sep 10 2019, 01:13:53)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
# 當輸出上面的信息表示Python-3.7.4安裝成功了。linux

pip工具的設置

Python-3.7.4版本是自帶有pip工具的,安裝成功後,在安裝路徑/usr/local/python3/bin下有pip3和pip3.7兩個可執行文件。
* 創建pip3命令的軟連接
ln -s /usr/local/python3/bin/pip3.7 /usr/local/bin/pip3centos

* 查看pip的版本信息:pip3 -V/--versionbash

* 查看幫助信息:pip3 -h/--help  或者 pip3 help工具

安裝過程遇到的問題

1. ModuleNotFoundError: No module named '_ctypes'
這個須要安裝依賴庫libffi-devel,執行命令以下:
yum install libffi-devel -y # -y表示對全部的提問都回答yes優化

 2. pip工具安裝Python三方庫時報pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.ui

這個須要安裝OpenSSL依賴庫,安裝Python-3.7.4以前先安裝OpenSSL,最好是安裝openssl-1.1.x版本的。安裝Python成功後,執行以下命令:centos7

# python
Python 3.7.4 (default, Sep 10 2019, 23:12:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sslspa

若是不報錯,這說明ssl設置成功了。能夠使用pip install <package>來安裝Python第三方庫了。

題外話:我在網上看到,要結果ModuleNotFoundError: No module named '_ssl'的錯誤,須要修改Python-3.7.4/Modules目錄下的Setup.dist和Setup文件的以下內容:

#找到SSL相關配置
#SSL=/usr/local/ssl
#_ssl _ssl.c \
#        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
#        -L$(SSL)/lib -lssl -lcrypto

#取消掉上面4行註釋,即
SSL=/usr/local
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib64 -lssl -lcrypto

#SSL= 後面跟的是OpenSSL的安裝路徑,好比說個人安裝路徑是/usr/local/openssl,那就修改成
SSL=/usr/local/openssl,能夠經過openssl version -a命令查看安裝路徑。

可是,我以爲這個比較麻煩,個人安裝過程是沒有修改Modules目錄下的Setup.dist和Setup的這兩個文件的,可是import ssl仍然是成功的,沒有報錯。

Reference

ImportError: No module named _ssl解決方法  https://blog.csdn.net/xiemanR/article/details/85224509

centos7.3編譯安裝OpenSSL1.1.1b  https://cloud.tencent.com/developer/article/1406810

centos6.8安裝python3.7.3報錯Can't connect to HTTPS URL because the SSL module is not available問題解決  http://www.mamicode.com/info-detail-2713977.html

CentOS7.6編譯安裝openssl-1.1.1c https://www.cnblogs.com/yunfan1024/p/11504039.html

相關文章
相關標籤/搜索