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。

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