CentOS8安装Python3.10

将所有命令里面python对应的版本号替换,就可以安装其他版本的python

1.安装编译所需的依赖

1
2
3
sudo yum -y update
sudo yum -y install openssl-devel libffi-devel bzip2-devel sqlite-devel
sudo yum -y groupinstall "Development Tools"

考虑到本人需要安装python环境的一般都是台新机子,这里顺带给出几个常用软件包

1
2
3
yum install git
yum install vim
yum install net-tools #netstat命令

顺便给出在deepin上的操作,除了安装包的命令不同,后续操作完全相同!(测试使用deepin v23-beta虚拟机)

1
2
sudo apt-get update
sudo apt-get upgrade
1
2
3
sudo apt install make build-essential libssl-dev zlib1g-dev
sudo apt install libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
sudo apt install libncurses5-dev libncursesw5-dev xz-utils tk-dev

2. 安装 Python 3.10 必需的 openssl >= 1.1.1

1.1.1q发布于 2022-Oct-12 14:17:24,算是较新的版本了!

https://www.openssl.org/source/old/1.1.1/

1
2
3
4
5
6
7
8
9
10
# 下载
wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz --no-check-certificate
# 解压
tar zxf openssl-1.1.1q.tar.gz
# 进入文件夹
cd openssl-1.1.1q
# 生成makefile
sudo ./config --prefix=/usr/local/openssl-1.1.1
# 通过make安装
sudo make && sudo make install

安装完毕这个之后,请检查环境变量中的CA证书是否正常,否则python运行时会报错。(主要是调用api时会报错)

https://blog.musnow.top/posts/3348986841/

目前我在CentOS8上安装此版本openssl时,python必然出现此问题。建议依照上文检查,再往后执行python安装步骤;

排查

将文章里面的解决步骤直接写在这里吧。安装好openssl后,执行如下命令,看看是否存在这个路径

1
ls /usr/local/openssl-1.1.1/ssl/cert.pem

如果提示文件路径不存在,则执行如下命令

1
ln -s /etc/pki/tls/cert.pem /usr/local/openssl-1.1.1/ssl/cert.pem

这样就能避免python导入ssl证书失败!

PS: 如上操作在centos7.2和centos8stream中实测有效,其他系统无法保证有效!

deepin安装的python出现了上文提到的ssl证书无法获取的问题,且目前暂时没有找到解决办法(解决办法和centos不同)

以下是我在deepin虚拟机里面,用本文方案安装python后测试的结果:

  • python3.10.5 出现此问题且未知修复办法
  • python3.10.6 没有出现此问题

3. 安装 Python 3.10

1
2
3
4
5
6
7
8
9
10
# 下载
wget https://www.python.org/ftp/python/3.10.5/Python-3.10.5.tgz
# 解压
tar zxf Python-3.10.5.tgz
# 进入文件夹
cd Python-3.10.5
# 生成make
sudo ./configure --enable-optimizations --with-openssl=/usr/local/openssl-1.1.1 --with-openssl-rpath=auto --enable-loadable-sqlite-extensions
# 安装
sudo make altinstall

如果官网安装慢,可以用如下连接下载对应版本

1
wget https://registry.npmmirror.com/-/binary/python/3.10.6/Python-3.10.6.tgz

慕雪的警告: 为了避免自己安装的python影响系统yum安装的使用,请不要将软连接直接连接成python

比如我们安装的是python3.10.5,那软链接的时候,请链接python3.10命令,而不是链接python命令!

当前官方提供的python3.10安装包,会自动链接python3.10pip3.10,理论上无需手动操作!

image-20230325224521144

原文后半部分都是建立软连接的教程,为了避免引发误解,故此删除!

1
2
版权声明:本文为CSDN博主「一_二」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zltliqi/article/details/126449120