CentOS7/RHEL7編譯安裝Python3.6(支持SSL)


yum源自帶的python版本依然停留在3.4,因此需要手動編譯安裝Python3.6以使用新特性。

測試環境: AWS RHEL7

Python版本: Python3.6.3

-2.安裝readline-devel

readline-devel可以解決python交互模式下出現^]]這種亂碼的情況。

yum install readline-devel

-1.更新zlib

yum源的zlib有安全問題,從www.zlib.net下載最新版本的zlib,更新編譯安裝。

有clang可以用clang編譯安裝

wget http://www.zlib.net/zlib-1.2.11.tar.xz #此處到zlib.net替換為最新的地址
tar xf zlib-1.2.11.tar.xz
if type clang >/dev/null 2>&1; then CC=clang ./configure; else ./configure; fi
make -j4 #替換為CPU邏輯核心數
make install #可能需要前面加sudo

 

0.之前是否編譯過OpenSSL

測試方法 

 ls /usr/local/ssl

若有文件,可跳過這一步。如果沒有文件,繼續:

從OpenSSL官網下載最新的安裝包並編譯安裝,安裝完成后執行

openssl version

 

確定安裝的版本。

1. 從Python.org下載最新版本Python的XZ壓縮包.

Python 3.6.3的地址: https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz

命令: 

wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz

 Python目前用clang編譯會出現一些奇怪的問題(我沒有成功)。因此此處用gcc編譯。

./configure --enable-shared --enable-optimizations --prefix=/usr/local/python36

 

此步完成后,需要修改Modules/Setup文件

vi Modules/Setup

VIM中輸入/SSL找到SSL所在行,解注釋掉以下內容:

SSL=/usr/local/ssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

另外,_csv _md5 _sha1 _sha256  _sha512 _sha3 _socket也可以考慮被解注釋,都算實用的模塊。

如果現在Python的交互模式中正常使用,一定要解注釋readline! (之前要安裝readline-devel)

之后

make -j4
make install

 


免責聲明!

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



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