CentOS8安装Python3.7
CentOS8安装Python3.7
由于 CentOS 8 的软件源中只有 Python 3.6,因此更高版本的 Python 需要自己编译安装。
安装编译工具
为了方便开发,直接安装开发工具包:
1 | sudo dnf groupinstall 'development tools' |
安装依赖包
1 | yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel xz-devel libffi-devel |
-y
表示面对安装中的全部选择项,都选 yes;全部依赖包中,
zlib-devel
、openssl-devel
和libffi-devel
必须得装,不然会安装失败/(ㄒoㄒ)/~~
百度搜索可以发现,大部分教程还要安装两个依赖包:
db4-devel
和libpcap-devel
,但是可以发现它们不在yum
中……让你安装
db4-devel
是个坑,因为它在 CentOS 7 中就被移除了,使用 CentOS >=7 的我们根本不需要安装(https://forum.directadmin.com/threads/db4-devel-nog-available-in-centos-7-missing-pre-requisite.58414/)而
libpcap-devel
需要用到 PowerTools 库:
1
2
3
4 sudo dnf -y install dnf-plugins-core
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf config-manager --set-enabled PowerTools
sudo yum install libpcap-devel(原因:https://bugzilla.redhat.com/show_bug.cgi?id=1707919;来源:https://computingforgeeks.com/enable-powertools-repository-on-centos-rhel-linux/)
下载并解压 Python 源码
选择合适的临时目录存放将要被编译的源码:
1 | mkdir /home/<NAME>/soft && cd /home/<NAME>/soft |
下载并解压:
1 | wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz |
配置编译参数
在 /usr/local
创建目录 python37/
存放编译好的文件,然后进行编译设置:
1 | mkdir /usr/local/python37 |
--enable-optimizations
选项通过运行多次测试来优化 Python 二进制文件,这会使得构建过程慢得多。
构建并安装
1 | make && make altinstall |
altinstall
:由于 CentOS 8 自带 Python-3.6,因此使用它避免覆盖默认的系统 Python 二进制包。
等待 30 min ~ 40 min :tea::tea::tea:
配置 ld.co.conf
1 | vim /etc/ld.so.conf.d/python37.conf |
建立软链接
1 | ln -s /usr/local/python37/bin/python3.7 /usr/local/bin/python |
这里没有删除系统自带 Python-3.6 的链接,terminal 中输入 python3
还是可以进入 Python-3.6 。
更新 pip
1 | pip3 install --upgrade pip |
配置环境变量
1 | export PATH=/usr/local/python37/bin:$PATH |
附录
安装和配置 virtualenv
1 | pip install virtualenv |