Linux安装Python3.8
程序员文章站
2022-05-29 10:26:04
...
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。
推荐阅读