Loading
0

Linux下将python3.6版本升级到python3.11版本方法。

技术小学生微信公众号
腾讯云服务器大促销。
华为服务器
背景与目的:为了在 Alibaba Cloud Linux 3.2104 系统上部署某项服务,需解决其 Python 版本依赖问题。该服务要求 Python 3.10 或更高版本,而系统默认预装的是 Python 3.6。
解决方案:通过源码编译方式将 Python 升级至 3.11 版本(注:Python 3.10 亦满足需求,仅下载源不同)。值得一提的是,Alibaba Cloud Linux 4 已默认集成 Python 3.11,若未来迁移至新版系统可免除此类配置工作。

重要提示:若是生产环境,建议提前做好快照或在测试环境中通过后再到生产环境操作,以免影响业务。
适用于centos。
升级到python3.14最新版:https://blog.tag.gg/showinfo-3-36395-0.html


1、先查看当前pyton版本:

python3 --version

输出:

[root@blog.tag.gg]# python3 --version
Python 3.6.8


说明:如果显示的版本是需要的版本则不用升级了。

2、安装编译所需环境

sudo yum groupinstall -y "Development Tools"
sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel libuuid-devel wget curl make


3、下载并编译安装。
python3.11.9  本教程以python3.11.9为例

cd /tmp
wget https://mirrors.huaweicloud.com/python/3.11.9/Python-3.11.9.tgz
tar xzf Python-3.11.9.tgz
cd Python-3.11.9
make distclean
./configure --enable-optimizations
make -j$(nproc)
make altinstall

出现如下则表示编译安装成功:

Looking in links: /tmp/tmpnnsm7xw7
Processing /tmp/tmpnnsm7xw7/setuptools-65.5.0-py3-none-any.whl
Processing /tmp/tmpnnsm7xw7/pip-24.0-py3-none-any.whl
Installing collected packages: setuptools, pip
Successfully installed pip-24.0 setuptools-65.5.0
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: https://pip.pypa.io/warnings/venv


4、设置软连到3.11

查询python3.11的路径

which python3.11

输出:

[root@blog.tag.gg]# which python3.11
/usr/local/bin/python3.11

注册到 alternatives 系统
如果系统中还没有注册 python3.11,需要手动添加(假设 python3.6 的路径是 /usr/bin/python3.6)
执行如下命令

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.11 2

一定要将/usr/local/bin/python3.11换成您3.11安装路径。which python3.11可查询
注意:最后的数字 1 和 2 是优先级,数字越大优先级越高。这里设 3.11 为 2(更高),或者稍后手动选择。

步骤 3:切换默认版本
运行以下命令进行选择:

sudo update-alternatives --config python3

选择2

[root@blog.tag.gg Python-3.11.9]# sudo update-alternatives --config python3

There are 2 programs which provide 'python3'.

  Selection    Command
-----------------------------------------------
   1           /usr/bin/python3.6
*+ 2           /usr/local/bin/python3.11

Enter to keep the current selection[+], or type selection number: 2


再执行:

python3 --version

可看到正确的版本了。

[root@blog.tag.gg Python-3.11.9]# python3 --version
Python 3.11.9

重要:升级后可能出现pip3无法使用问题。
修复方法:
1、先执行如下命令看下是否能识别到pip3

pip3 --version

输出如下,则表示没能识别到。

-bash: pip3: command not found

2、检查 pip 是否其实已经存在(可能只是没链接)
需将/usr/local/bin更换为您python对应目录,可执行命令  which python3.11 查看路径。
执行命令:

ls -l /usr/local/bin/pip*

输出:

[root@blog.tag.gg Python-3.11.9]# ls -l /usr/local/bin/pip*
-rwxr-xr-x 1 root root 230 Jul 11 18:16 /usr/local/bin/pip3.11

这个显示则说明pip3存在,只是没软连。
3、创建软连
执行命令:

sudo ln -sf /usr/local/bin/pip3.11 /usr/local/bin/pip3

创建软连后执行如下命令查看能否识别到pip3

pip3 --version

输出:

[root@blog.tag.gg Python-3.11.9]# pip3 --version
pip 24.0 from /usr/local/lib/python3.11/site-packages/pip (python 3.11)

输出看已经使用了python3.11下的pip了,版本是24.0
至此大功告成。
技术小学生微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-3-36394-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:网站日志分析实战:一键统计访问IP TOP20与C段流量
下一篇:Linux将python版本升级到最新python3.14版本方法