指南使用操作系统: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

至此在OpenEuler22.09编译安装Python3.9,并于原Python共存-指南已经完成

因为OpenEuler是基于CentOS系统改过来的,所以该教程对于CentOS有借鉴作用。

教别人是最好的学习。本指南允许借鉴,但不允许复制抄袭,仅发布于博客园!!

在OpenEuler22.09(也适用于CentOS7+)编译安装Python3.9,并于原Python共存-指南的更多相关文章

  1. CentOS7 编译安装python3.6.8(升级python)

    1.安装依赖包和需要用到的工具 yum -y install wget openssl openssl-devel 这里如果不升级openssl,安装后pip安装模块可能会出错.点我查看pip安装模块 ...

  2. centos7编译安装Python3所需要的库(模块)依赖

    在centos中编译安装python3环境,第三方的库 实战的编辑环境: 1.VMware虚拟机   2.centos7 依赖包经过百度搜集以及之前安装Python3报错搜集(centos7反反复复安 ...

  3. centos7编译安装Python3.6(与2.7并存)

    首先去官网下载python3.6 https://www.python.org/ 环境准备:#yum install openssl-devel bzip2-devel expat-devel gdb ...

  4. Centos7 编译安装python3

    step1:preparation $ yum install yum-utils make wget gcc $yum-builddep python step2:download $ wget h ...

  5. CentOS7.5安装python3并设置成系统默认python环境

    1.环境说明 系统版本:CentOS7. 安装的python版本: 2.编译环境准备(如果出现文件解压错误,wget命令无法下载等各种小意外,先把下面的环境安装一遍) yum install zlib ...

  6. centos7编译安装Python 3.6.8 后用pip3出现SSL未配置问题(import ssl失败)解决方法

    下载源码编译安装openssl https://www.openssl.org/source/openssl-1.0.2j.tar.gz ./config --prefix=/usr/local/op ...

  7. CentOS7编译安装Nginx-1.8.1和编译参数

    CentOS7编译安装Nginx-1.8.1和编译参数 Web服务器Nginx    LNMP是一组众所周知的Web网站服务器架构环境,即由Linux+Nginx+MySQL+PHP(MySQL有时也 ...

  8. centos7编译安装MySQL5.7.9

    title: centos7编译安装MySQL5.7.9 date: 2016-05-12 16:20:17 tags: --- Centos7编译安装mysql5.7.9 mysql5.7有更好的性 ...

  9. centos7 编译安装新版LNMP环境

    centos7 编译安装新版LNMP环境 环境版本如下: 1.系统环境:Centos 7 x86_64 2.NGINX:nginx-1.11.3.tar.gz 3.数据库:mariadb-10.0.2 ...

  10. CentOS7编译安装httpd-2.4.41 php7.3

    CentOS7编译安装httpd-2.4.41 php7.3 安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yu ...

随机推荐

  1. Kibana:在Kibana中对数据进行深入分析

  2. 企业微信报警中关于markdown的用法

    官方文档地址:https://open.work.weixin.qq.com/api/doc/90002/90151/90853#markdown消息 请求方式:POST(HTTPS) 请求地址: h ...

  3. C#-6 运算符和语句

    一 运算符重载 可以重定义或重载 C# 中内置的运算符. 重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的. public static Box operato ...

  4. 【持久层框架】- SpringData - JPA

    SpringData - JPA 生命不息,写作不止 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长! JPA简 ...

  5. Codeforces Round #577 (Div. 2) C. Maximum Median

    题意:就是给一n(奇数)个元素数组,可以对它的元素执行k次+1操作,递增排序,求中位数最大是多少. 那我们在排完序之后,中位数前的元素可以不管它,只要对中位数后的操作就行,我们要判断和中位数相等的元素 ...

  6. crondtab定时任务%字符无法识别的处理

    一.背景 1.使用crond的定时任务时,编辑了以下的语句,每天0点执行定时任务 crontab -eservice crond restart 0 0 * * * sh /root/backup/c ...

  7. 使用python制作动图

    利用python制作gif图 引言 当写文章时候,多张图片会影响排版,可以考虑制作gif图 准备 pip install imageio 代码 # This is a sample Python sc ...

  8. Period of an Infinite Binary Expansion 题解

    Solution 简单写一下思考过程,比较水的数论题 第一个答案几乎已经是可以背下来的,在此不再赘述 考虑我们已经知道了\((p,q)\),其中\((p \perp q) \wedge (q \per ...

  9. Request保存作用域

    Request保存作用域,作用范围是在当前请求中有效. 1.客户端重定向 2.服务器内部转发

  10. 【C++】GoogleTest进阶之gMock

    gMock是什么 当我们去写测试时,有些测试对象很单纯简单,例如一个函数完全不依赖于其他的对象,那么就只需要验证其输入输出是否符合预期即可. 但是如果测试对象很复杂或者依赖于其他的对象呢?例如一个函数 ...