CentOS/RedHat 7默认是带Python2.7的,Python3可以通过yum方式安装3.6版本:
yum install python3
如果启用了SCLo-rh软件源,还可以用yum安装3.8版本:
yum install rh-python38
唯独3.7版本只能通过源码方式安装。为避免安装中python的冲突,可以按以下方式安装。安装完后,python3和python2都能正常运行。
注意,安装中第一步yum安装依赖包最好执行。没有这些依赖,configure时就会缺少一些组件。导致后期如果要使用还要再编译一次,非常麻烦。另外,如果是root权限安装,需要修改安装完后的目录和文件权限,确保所有人能用
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ tk-devel db4-devel libpcap-devel xz-devel libffi-devel openldap-devel zlib*
tar zxvf Python-3.7.12.tgz
cd Python-3.7.12
./configure --enable-optimizations --enable-shared
make
make altinstall
find /usr/local/lib/python3.7 -type f|xargs -I {} chmod 644 '{}'
find /usr/local/lib/python3.7 -type d|xargs -I {} chmod 755 '{}'
此外,如果是运行时报错
/usr/local/bin/python3.7: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory
则说明动态链接库路径不在系统的默认路径中,执行以下命令即可:
echo "/usr/local/lib" >> /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig