在OpenEuler22.09(也适用于CentOS7+)编译安装Python3.9,并于原Python共存-指南
指南使用操作系统: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共存-指南的更多相关文章
- CentOS7 编译安装python3.6.8(升级python)
1.安装依赖包和需要用到的工具 yum -y install wget openssl openssl-devel 这里如果不升级openssl,安装后pip安装模块可能会出错.点我查看pip安装模块 ...
- centos7编译安装Python3所需要的库(模块)依赖
在centos中编译安装python3环境,第三方的库 实战的编辑环境: 1.VMware虚拟机 2.centos7 依赖包经过百度搜集以及之前安装Python3报错搜集(centos7反反复复安 ...
- centos7编译安装Python3.6(与2.7并存)
首先去官网下载python3.6 https://www.python.org/ 环境准备:#yum install openssl-devel bzip2-devel expat-devel gdb ...
- Centos7 编译安装python3
step1:preparation $ yum install yum-utils make wget gcc $yum-builddep python step2:download $ wget h ...
- CentOS7.5安装python3并设置成系统默认python环境
1.环境说明 系统版本:CentOS7. 安装的python版本: 2.编译环境准备(如果出现文件解压错误,wget命令无法下载等各种小意外,先把下面的环境安装一遍) yum install zlib ...
- 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 ...
- CentOS7编译安装Nginx-1.8.1和编译参数
CentOS7编译安装Nginx-1.8.1和编译参数 Web服务器Nginx LNMP是一组众所周知的Web网站服务器架构环境,即由Linux+Nginx+MySQL+PHP(MySQL有时也 ...
- centos7编译安装MySQL5.7.9
title: centos7编译安装MySQL5.7.9 date: 2016-05-12 16:20:17 tags: --- Centos7编译安装mysql5.7.9 mysql5.7有更好的性 ...
- centos7 编译安装新版LNMP环境
centos7 编译安装新版LNMP环境 环境版本如下: 1.系统环境:Centos 7 x86_64 2.NGINX:nginx-1.11.3.tar.gz 3.数据库:mariadb-10.0.2 ...
- CentOS7编译安装httpd-2.4.41 php7.3
CentOS7编译安装httpd-2.4.41 php7.3 安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yu ...
随机推荐
- 关于AWS-EC2或者多个资源的tag的批量添加-基于Resource Groups & Tag Editor 和 命令处理
今天收到一个请求,需要对公司所有的ec2-添加上两个成本IO标签,因为机器太多了 想到了如下两种方案去批量处理 方案一:利用aws的 [Management Tools]下的 Resource Gro ...
- Codeforces Round #708 (Div. 2)
A题被hack,A题很简单,其实题目没看懂,直接看样例做的. B题题意是以为懂了,但是样例一直看不懂. 经验:要两两相加能被一个m整除数组sum最少,利用他们的余数就可以设为a[x], x是余数,如果 ...
- 华为交换机VLAN常用命令
划分vlan vlan 10 划分Vlan10 vlan batch 30 40 同时创建vlan30和40 dispaly vlan 查看vlan信息 int e0/0/1 进入某一个接口 port ...
- springboot+vue 实现校园二手商城(毕业设计一)
1.功能划分 2.实现的效果 2.1 登录页面 2.2 注册页面 2.3 商城首页 2.4 商品详情 2.5 购物车 2.6 订单 2.7 在线交流 2.8 公告信息 2.9 个人信息 3.后台管理界 ...
- 十一、Pod的健康检查-探针
Pod 的健康检查-探针 一.Pod 的健康检查-探针 1.1.探针基本概念 探针是由 kubelet 对容器执行的定期诊断.要执行诊断,kubelet 调用由容器实现的 Handler 有三种类型 ...
- Java Timer使用介绍
java.util包下提供了对定时任务的支持,涉及2个类: Timer:定时器类 TimerTask:任务抽象类 使用该定时任务我们需要继承TimerTask抽象类,覆盖run方法编写任务执行代码,并 ...
- 前后端分离项目(十一):实现"删"功能(前后端)
好家伙,本篇介绍如何实现"删"功能 来看效果, 数据库 (自然是没什么毛病) "增"搞定了,其实"删"非常简单 (我不会告诉你我是为了水一 ...
- GAC简述
GAC简介 GAC全称是Global Assembly Cache作用是可以存放一些有很多程序都要用到的公共Assembly,例如System.Data.System.Windows.Forms等等. ...
- perl大小写转换函数uc和lc
$side = uc $attrs[0]; #把attrs[0]转换成大写,然后给side变量赋值. $gender = lc $attrs[1]; #把attrs[1]转换成小写,然后给gender ...
- 数据库json字段类型总结
----------------------------------------=================以下是个人自己总结,可能只有自己看的懂.===================---- ...