CentOS 7 编译安装 Python 3.7.4

4 Comments

CentOS 7 环境下编译安装 Python 3.7.4,与自带 Python 2.7 共存。不得不说安装这货挺累的。

编译安装Python 3.7.4

目前 Python 最新版为 Python 3.7.4,如果以后有新版本更新,基本也差不多,以下是编译安装 Python 3.7.4 方法,根据提示一行一个命令输入即可:

安装依赖

yum groupinstall -y "Development tools" && yum -y install wget libffi-devel zlib-devel ncurses-libs mysql-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel uuid-devel libuuid-devel

旧方法备忘▼展开

安装 OpenSSL 可能报错 You need Perl 5

需要安装 Perl 5,可以编译安装,官网方法:

wget https://www.cpan.org/src/5.0/perl-5.30.0.tar.gz
tar -xzf perl-5.30.0.tar.gz
cd perl-5.30.0
./Configure -des -Dprefix=$HOME/localperl
make
make test
make install

这个方法比较慢/累人,CentOS 建议 yum 安装

yum install perl*     ##这个命令基本上把 Perl 模块安装齐全。
yum install cpan    ##有需要可以把这个也安装上

安装完成后 pip 提示没有可用 SSL,无法访问 https 协议源

Python 编译时没有将 SSL 编译进去。安装符合要求 OpenSSL 版本,并在 ./configure 时添加 --with-ssl 参数。下面是编译安装 OpenSSL 1.1.1c(生产环境慎折腾):

cd /root
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz && tar zvxf openssl-1.1.1c.tar.gz && cd openssl-1.1.1c
./config -fPIC --prefix=/usr/ --openssldir=/usr/openssl enable-shared shared zlib
make -j24
make install

如无意外,安装成功,执行 openssl version 可以看到版本号 OpenSSL 1.1.1c 28 May 2019

安装 Python 3.7.4

cd /root && wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz && tar zvxf Python-3.7.4.tgz && cd Python-3.7.4
./configure
make -j24
make install

如无意外,安装完成,输入命令 python3 -V 就能看到版本号。如果要使用系统 Python 2.7,直接输入 python xxx 即可,两者互不影响。

旧方法备忘▼展开

cd /root
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz && tar zvxf Python-3.7.4.tgz && cd Python-3.7.4
./configure --prefix=/usr/local/python3 --enable-optimizations --enable-shared --enable-profiling --with-ssl
make -j24
make install
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

如果执行 python3 -V 提示如下错误:

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

进入 Python-3.7.4 源码目录,如这里是 /root/Python-3.7.4,执行一次下面的命令就可以:

cp libpython3.7m.so.1.0  /usr/lib64

至此,Python-3.7.4 安装完毕。

BuyVMDigitalOcean CentOS Linux release 7.6 系统测试通过。

参考资料

始终 - 于 CentOS 7 上编译安装 Python 3.7.2

除非注明,常阳时光文章均为原创,本文地址 https://cyhour.com/1115/ 转载时必须以链接形式注明原始出处。
Vultr 送$25,搬瓦工年付最低$49,优惠码 BWH34QMFYT2R,更多推荐VPS信息,或支持老杨
Views: 438 Tags:  ,  ,  ,  ,  , 

Comments:4

  1. 能折腾!网上其实有相关的源的,搜索一下就很容易发现,简单省事。自己编译的可能会某些 flag 没打开导致部分功能无法使用。

    2019.08.25 16:00 # 回复
    1楼
  2. 不折腾,不铁血。

    2019.09.07 03:02 # 回复
    2楼
    • @郑永 开始折腾还是挺麻烦的,后来看别人的一键脚本,安装起来就方便/快很多。

      2019.09.07 15:47 # 回复

发表留言

Vultr 送$25,搬瓦工年付最低$49,优惠码 BWH34QMFYT2R,更多推荐VPS信息