- A+
所属分类:linux技术
指南使用操作系统:OpenEuler 22.09(网络安装,最小安装,使用默认源)
指南使用系统自带Python版本:3.10(高版本,这不是3.1喔)
1. 安装基本的编译环境
yum -y install gcc gcc-c++ make libtool zlib zlib-devel libffi-devel pcre pcre-devel pcre2-devel perl-devel perl-ExtUtils-Embed openssl openssl-devel
2. 下载华为仓库内的Python 3.9.2包,并进行编译安装:
华为仓库Python版本列表:https://repo.huaweicloud.com/python/
# wget[]下载Python 3.9.2包 wget -c https://repo.huaweicloud.com/python/3.9.2/Python-3.9.2.tgz # tar将Python 3.9.2包 解压到当前目录 tar zxvf Python-3.9.2.tgz # 进入解压好的Python-3.9.2目录内 配置编译 cd Python-3.9.2 ./configure --enable-optimizations --enable-shared # 执行make命令来构建编译(需要等待较长时间)[SDM] make && make install
3. 检查Python3.9是否安装成功(这里有个小意外喔)
python3 -V # 不出意外,这里会出意外,出现以下错误[StarDarkMonarch]: python3: error while loading shared libraries: libpython3.9.so.1.0: cannot open shared object file: No such file or directory # 其原因是/usr/lib64/没有python3.9的库文件 # 编译后的Python3.9的库文件放置在/usr/loacl/lib/目录内 # 解决方法如下: cp /usr/local/lib/libpython3.* /usr/lib64 # 如果你的Linux发行版自带Python3的版本(部分Linux发行版只自带Python2.7), 会提示覆盖libpython3.so cp: overwrite '/usr/lib64/libpython3.so'? # 打个y,回车即可(确认覆盖[仅博客园])。 # 再次测试Python3.9是否安装成功 python3 -V # 输出一下内容,就证明安装好Python3.9 Python 3.9.2
4. 版本共存
因为有些有的Linux发行版已经有Python3的,甚至部分程序基于系统自带的Python3的。
所以要将系统自带的Python3和自己安装Python3.9区分好,实现版本共存。
# 自己安装的Python3.9的python3软链接(快捷方式)重命名为python39 mv /usr/local/bin/python3 /usr/local/bin/python39 # 在/usr/bin/目录下创建一个名称为python39的软链接,指向/usr/local/bin/python3.9 ln -s /usr/local/bin/python3.9 /usr/bin/python39 # 啰嗦点: # 我们只是在/usr/local/bin改了python3.9的软链接名称 & 在/usr/bin/创建了一个python3.9的软链接 # 完全没有动过系统原有Python3的东西,怎么实现原有Python3和Python3.9共存的呢? # 原因就在那个名为python3的软链接,和linux命令行查找程序的顺序(以先找到的为准)。 # 在/usr/bin下面就有一个的python3软链接,是指向原有python3程序的。 # [仅博客园]但是/usr/local/bin/这个目录是比/usr/bin/的优先度更高。 # 所以在/usr/local/bin/下的python3软链接(指向于python3.9)优先生效。 # 在/usr/loacl/bin/下将python3.9的软连接python3改为python39,原来位于/usr/bin/下面的python3就会生效。 # 检查各版本Python的情况 python3 -V # 输出以下内容 Python 3.10.2 python39 -V # 输出以下内容 Python 3.9.2