CentOS安装Python3时常遇到的问题总结

安装包下载

python3的Linux安装源码都可以在
https://www.python.org/downloads/source/
下面找到,可以在windows端下载之后远程送到Linux(服务器或虚拟机),也可以直接在Linux终端使用wget命令来获取。
例如,下载python3.7.2版本源码:

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

(当然,国内下载速度。。。需要有点耐心)
下载之后执行解压:

sudo tar xvf Python-3.7.2.tar.xz 

编译安装

cd python-3.7.2
./configure --prefix=/usr/local/python37 --with-ssl --enable-shared
make && make install

其中编译指令后面的参数--prefix指定自定义的安装目录,可以不指定。但是--with-ssl参数一定要添加,如果省略掉这个参数,在以后执行pip来安装第三方库的时候,将会提示ssl证书错误。--enable-shared参数建议指定,这样便于依赖python的其他软件配置。

添加软链接

为了方便的运行python3,可以配置系统的环境变量,向其中添加python的bin目录,也可以通过向/usr/bin目录添加软链接的方式快捷启用python3,但是强烈不建议覆盖原有的python2的软链接(Linux默认/usr/bin/python指向系统自带的python2版本)。下面命令向/usr/bin目录下添加python3和pip3 的软链接:

ln -s /usr/local/python37/bin/python3 /usr/bin/python3
ln -s /usr/local/python37/bin/pip3 /usr/bin/pip3

添加好两个软链接后通过命令行执行python3pip3 list来检查安装是否正确。
强烈建议使用python3python2命令来启动python,而不是使用简短版的python命令。在即将发布的RHEL8版本中,默认不支持python命令来启动python,必须指定python的版本。

常见报错解决

依赖环境的缺失

最常见的报错是在编译执行make命令的时候,提示缺少各种库,这是需要首先通过yum命令将所有依赖库都安装一遍,再次执行make

yum -y install zlib zlib-devel
yum -y install bzip2 bzip2-devel
yum -y install ncurses ncurses-devel
yum -y install readline readline-devel
yum -y install openssl openssl-devel
yum -y install openssl-static
yum -y install xz lzma xz-devel
yum -y install sqlite sqlite-devel
yum -y install gdbm gdbm-devel
yum -y install tk tk-devel
yum -y install libffi libffi-devel

ssl的证书问题

安装完成后发现pip无法执行,提示ssl证书错误,需要重新编译,编译时加上--with-ssl选项。

库文件缺失错误

pip执行是报错:

/usr/local/python37/bin/python3.7: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

原因是系统不能到python库中获取文件,只需要想系统声明python库的路径即可:

vi /etc/ld.so.conf.d/python3.conf

向其中写入:

/usr/local/python37/lib

链接动态库

ldconfig

即可恢复正常。

pip源的替换

pip用来安装第三方库文件时,很可能遇到下载慢的问题,这是因为网络访问pypi服务器的速度慢,可以用替换pip的源来解决。
国内有很多开源软件镜像站,比如网易、国内各种大学。如果是在校学生,平时使用校园网,可以尝试寻找自己学校有没有开源软件的镜像站,下面以南京邮电大学开源软件镜像站为例:
编辑~/.pip/pip.conf文件(如果不存在就新建文件),向其中写入内容:

[global]
index-url = https://mirrors.njupt.edu.cn/nexus/repository/pypi/simple 

这样在下次使用pip时,速度可以提升。

你可能感兴趣的:(CentOS安装Python3时常遇到的问题总结)