指南使用操作系统: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. 关于AWS-EC2或者多个资源的tag的批量添加-基于Resource Groups & Tag Editor 和 命令处理

    今天收到一个请求,需要对公司所有的ec2-添加上两个成本IO标签,因为机器太多了 想到了如下两种方案去批量处理 方案一:利用aws的 [Management Tools]下的 Resource Gro ...

  2. Codeforces Round #708 (Div. 2)

    A题被hack,A题很简单,其实题目没看懂,直接看样例做的. B题题意是以为懂了,但是样例一直看不懂. 经验:要两两相加能被一个m整除数组sum最少,利用他们的余数就可以设为a[x], x是余数,如果 ...

  3. 华为交换机VLAN常用命令

    划分vlan vlan 10 划分Vlan10 vlan batch 30 40 同时创建vlan30和40 dispaly vlan 查看vlan信息 int e0/0/1 进入某一个接口 port ...

  4. springboot+vue 实现校园二手商城(毕业设计一)

    1.功能划分 2.实现的效果 2.1 登录页面 2.2 注册页面 2.3 商城首页 2.4 商品详情 2.5 购物车 2.6 订单 2.7 在线交流 2.8 公告信息 2.9 个人信息 3.后台管理界 ...

  5. 十一、Pod的健康检查-探针

    Pod 的健康检查-探针 一.Pod 的健康检查-探针 1.1.探针基本概念 ​探针是由 kubelet 对容器执行的定期诊断.要执行诊断,kubelet 调用由容器实现的 Handler 有三种类型 ...

  6. Java Timer使用介绍

    java.util包下提供了对定时任务的支持,涉及2个类: Timer:定时器类 TimerTask:任务抽象类 使用该定时任务我们需要继承TimerTask抽象类,覆盖run方法编写任务执行代码,并 ...

  7. 前后端分离项目(十一):实现"删"功能(前后端)

    好家伙,本篇介绍如何实现"删"功能 来看效果,  数据库 (自然是没什么毛病) "增"搞定了,其实"删"非常简单 (我不会告诉你我是为了水一 ...

  8. GAC简述

    GAC简介 GAC全称是Global Assembly Cache作用是可以存放一些有很多程序都要用到的公共Assembly,例如System.Data.System.Windows.Forms等等. ...

  9. perl大小写转换函数uc和lc

    $side = uc $attrs[0]; #把attrs[0]转换成大写,然后给side变量赋值. $gender = lc $attrs[1]; #把attrs[1]转换成小写,然后给gender ...

  10. 数据库json字段类型总结

    ----------------------------------------=================以下是个人自己总结,可能只有自己看的懂.===================---- ...