yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc libffi-devel
mkdir -p /data/server/python
cd /data/server/python
wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tar.xz
# 解压 到指定目录
tar -xf Python-3.11.4.tar.xz
# 生成编译脚本(指定安装目录)
cd Python-3.11.4
mkdir /usr/local/python3
./configure --prefix=/usr/local/python3
# 编译
make & make install
# 建立连接
ln -s /usr/local/python3/bin/python3.11 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.11 /usr/bin/pip3
# 运行
python3 -V
#pip3
pip3 install tornado
#卸载
pip3 uninstall xxx
#更新
pip3 install xxxx -U
#查看已安装的包
pip3 list
修改pip源
mkdir ~/.pip
cd ~/.pip
vi pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
遇到SSLError时需要考虑是否openssl 版本太低
查看openssl 版本
[root@xmg-hk ~]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
官网下载openssl-1.1.1k
其他版本可参考下载: https://www.openssl.org/source/openssl-1.1.1k.tar.gz
先备份openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
进入目录并编译
cd /usr/local/openssl-1.1.1k
./config --prefix=/usr/local/openssl
make && make install
建立链接
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v
查看是否升级成功
[root@base book-trace-py]# openssl version
OpenSSL 1.1.1k 25 Mar 2021
升级完成openssl之后需要重新编译安装python3
rm -rf /usr/local/python3
mkdir /usr/local/python3
./configure prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto --enable-optimizations
make && make install
ln -s /usr/local/python3/bin/python3.11 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.11 /usr/bin/pip3
make时出现问题,
make[1]: *** [pybuilddir.txt] Error 1
make[1]: Leaving directory `/usr/local/src/Python-3.8.0'
make: *** [profile-opt] Error 2
最好把 --enable-optimizations 去掉
make clean
./configure prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
make && make install
成功截图
参考:python 3.8.0 编译报错 Could not import runpy module 解决方案-蒲公英云