指南使用操作系统: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. Elasticsearch:正确使用regexp搜索

  2. flask-bootstrap 模版中所需的CSS/JS文件实现本地引入

    Flask-Bootstrap默认是加载CDN的css与js文件,每次刷新页面都要访问到外网的cdn来获取css与js文件; 模版扩展来自于bootstrap/base.html,就以bootstra ...

  3. echarts BAR堆叠图显示百分比

    在使用echarts的堆叠图时,我们鼠标悬停的浮窗里的信息可能并不是我们想要的信息,这个时候需要我们配置一下,因为堆叠图的trigger的类型是坐标轴触发的,数据是多组数据,所以我们需要遍历一下数据, ...

  4. CentOS 7.9 安装 redis-6.2.0

    一.CentOS 7.9 安装 redis-6.2.0 1 下载地址:https://download.redis.io/releases/redis-6.2.0.tar.gz 2 安装gcc来进行编 ...

  5. 220722 T2 序列(ST表+分治)

    题目描述 小 B 喜欢玩游戏. 有一天,小 B 在玩一个序列上的游戏,他得到了正整数序列{ai}以及一个常数c . 游戏规则是,玩家可以对于每一个ai 分别加上一个非负整数x ,代价为 x2,完成所有 ...

  6. day47-JDBC和连接池03

    JDBC和连接池03 8.事务 8.1事务介绍 基本介绍 JDBC程序中当一个Connection对象创建时,默认情况下是自动提交事务:每次执行一个SQL语句时,如果执行成功,就会向数据库自动提交,而 ...

  7. JVM运行模式和逃逸分析

    JVM三种运行模式: 解释模式(Interpreted Mode):只使用解释器(-Xint强制JVM使用解释模式),执行一行JVM字节码就编译一行为机器码.(可以马上看到效果,但是运行过程比较慢) ...

  8. VS Code For Web 深入浅出 -- 导读篇

    下一代 IDE 的形态究竟是什么呢?VS Code For Web 试图回答这个问题. 背景 众所周知,VS Code 是当前工业界最优秀的代码编辑器之一.它由<设计模式>的作者 Eric ...

  9. 1.MongoDB之服务启动

    1. 编写docker-compose.yaml文件 version: "3" services: mongo: image: mongo:4.2.6 ports: - 27017 ...

  10. 齐博x1 万能fun 调用任意数据表 任意字段就是这么任性调用

    列举了几个常用的查询进行简单封装,虽然系统也有内置的但是很多人不大会就二次封装简化了一下. 这里只封装了一个条件 多个条件的自己再封装或者用标签解决比较好 这里只是说fun可以万能调用 1获取任意表的 ...