1、如果有旧版本Python3,请尽可能的卸载干净。

yum remove -y python3 && \
whereis python3 |xargs rm -frv && \
rm -rf /usr/bin/python3 && \
rm -rf /usr/bin/pip3

2、yum update -y

yum update -y

3、安装依赖

暂时还没遇到安装出错,说明本机依赖都全了,有提示时候根据提示再安装吧。

yum install 

5、在python.org下载最新版本python,目前最新稳定版是3.11.5

wget https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz

6、解压压缩包并进入Python-3.11.5所在文件夹

tar -xvf Python-3.11.5.tgz && cd Python-3.11.5

7、配置

#如果你以前编译过python3,用来清除残留配置
make clean && make distclean
./configure \
    --with-openssl=/usr/local/openssl \
    --with-openssl-rpath=auto \
    --prefix=/usr/local/python3.11.5

--prefix为指定安装的路径
--with-openssl为openssl的根目录,centos7.x 升级openssl1.1.1
--with-openssl-rpath为openssl运行库目录,auto自动
--enable-optimizations,是优化Profile引导优化(PGO)和链路时间优化(LTO),加上这个flag编译后,性能有10-20%的优化。

注意:python文件在root下下载,移到其他目录的时候,加上这个会编译安装失败,可以去掉。失败原因这里看到的:https://blog.csdn.net/bk_guo/article/details/78931450

另一个说法是在python3.8后,使用enable-optimizations 这个参数在服务器使用的是低版本的gcc时会报错。
https://blog.csdn.net/qq_61313949/article/details/124144829

8、编译安装

make -j2 && make install

安装完成后,为了正常使用还要做的工作,软连接和环境变量任选其一。

9、添加软连接

添加软连接和下面的设置环境变量二选一。

ln -sf /usr/local/python3.11.5/bin/python3 /usr/bin/python3 && \
ln -sf /usr/local/python3.11.5/bin/pip3 /usr/bin/pip3

此时输入python3即可打开python3。

网上大多都是添加软连接,按理说使用软连接的话就不用设置环境变量了。

不过使用软链接的话,安装部分库时会提示没有添加环境变量,类似WARNING: The script normalizer is installed in '/usr/local/python3.11.5/bin' which is not on PATH.

10、设置环境变量

将/usr/local/python3.11.5/bin加入PATH

echo "export PATH=\$PATH:/usr/local/python3.11.5/bin" >> /etc/profile.d/python.sh

/etc/profile.d/python.sh,.sh前缀可以随意设置

使环境变量立即生效。

source /etc/profile.d/python.sh

11、卸载

如果有卸载的需求,直接删除/usr/local/python3.11.5目录即可。

# 其他:

1、执行pip3 list 提示WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

解决方法:

配置的时候加上下面的参数

--with-openssl=/usr/local/openssl

--with-openssl-rpath=auto

/usr/local/openssl是openssl根目录,这个是我升级openssl自定义的目录,系统自带的目录请自行查询,一般自带的版本是1.0.2,还是建议升级到1.1.1,centos7.x 升级openssl1.1.1

2、WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead。

字面意思,官方建议使用虚拟环境。不想用虚拟环境可以直接无视。

# 创建虚拟环境
python3 -m venv /path/to/new/virtual/environment
# 激活
# 在Windows上,运行:
\path\to\new\virtual\environment\Scripts\activate.bat
# 在Unix或MacOS上,运行:
source /path/to/new/virtual/environment/bin/activate

python3.8 新版功能,创建虚拟环境后,激活的含义只是使用python或python3调用当前虚拟环境的解释器。

我们可以直接/path/to/project/venv/bin/python /path/to/project/project/manage.py这样运行脚本。

这样很方便我们用其他方法执行脚本,比如定时任务之类(详见网页底部:venv --- 创建虚拟环境)。

3、安装python3.11.5后vim打不开了。

解决方法:之前的vim也是编译安装的,当时打开了对python3脚本的支持,旧版python3的路劲和现在编译安装的不同。

解决办法就是重新安装vim。无论何种办法安装都可以。想编译安装vim就看这里:http://www.gmloc.me/154.html

官方文档: