Linux安裝Python3.8

Linux下安裝Python3.8

一、文件下載

https://www.python.org/downloads/release/python-380/
下載Python-3.8.0.tgz文件

$	tar -zxvf Python-3.8.0.tgz 

二、安裝必要環境

首先安裝一些必要的庫。

$	yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
$	yum install libffi-devel -y

如果服務器中同時存在多個Python版本,yum可能會報一些語法錯誤,這時只要指定運行版本即可,在下面三個文件中都將! /usr/bin/python改成! /usr/bin/python2.7

$	vim /usr/libexec/urlgrabber-ext-down
$	vim /usr/bin/yum-config-manager
$	vim /usr/bin/yum

三、安裝Python3

首先配置安裝路徑,這樣Python所有資源文件都會集中在這裏,之後要卸載也方便。

$	make clean
$	./configure prefix=usr/local/python3

然後編譯並安裝

$	make -j4 && make install

最後配置環境和軟連接,這樣以後直接敲python就是新安裝的版本。

$	sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
$	rm /usr/bin/python
$	sudo ln -s /usr/local/python3 /usr/bin/python

四、卸載

由於安裝時指定了prefix,直接刪除即可

$	rm -r /usr/local/python3

如果忘記了當初設的prefix是什麼,而安裝包目錄還保存着,可以這樣查看

$	cd /usr/local/python3/Install_Package/Python-3.8.0
$	cat config.log | grep 'prefix='

五、pip3

創建軟鏈接

$	rm /usr/bin/pip3
$	sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

六、pip3的SSL問題

在使用pip3安裝庫的時候,報了個Warning:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available。

原因是處於安全考慮,要求openssl版本至少爲1.0.2
查看服務器上openssl版本,發現當前版本是1.0.1

$	openssl version -a

6.1 安裝最新的openssl並配好環境

$	wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz
$	tar -xzf openssl-1.0.2j.tar.gz
$	cd openssl-1.0.2j
$	./config --prefix=/usr/local/openssl

然而現在默認版本還是1.0.1,需要手動更改軟鏈接

$	mv /usr/bin/openssl /usr/bin/openssl1.0.1
$	sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl1.0.2
$	sudo ln -s /usr/bin/openssl1.0.2/ /usr/bin/openssl

6.2 更改Python3編譯配置

在Python3的安裝包路徑下,首先找到./Module/Setup,修改下面的部分,SSL改成新版本openssl的安裝路徑。

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

然後配置並編譯安裝,這次帶上 --with-ssl

$	./configure --prefix=/usr/local/python3 --with-ssl
$	make -j4 && make install

七、某些庫的問題

如果在安裝Python3之前沒有安裝第二步的必要環境,import某些庫就可能報錯。
例如numpy: No module named '_ctypes'pandas: no module named bz2等。

解決方法是按第二步安裝好,然後重新編譯安裝Python3。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章