Linux(CentOS7.5) 安装部署 Python3.6(超详细!包含 Yum 源配置!)

文章目录

    • 1.配置 Yum 源
    • 2.下载 Python3 包
    • 3. 解压
    • 4.安装依赖环境
    • 5.安装
      • 出错场景
    • 6.创建软链接
    • 7.配置 Python3 的环境变量
    • 8.验证
    • 补充:安装 openssl-devel
    • 补充:pip3 源配置

1.配置 Yum 源

# 注意!!!请先切换到 root 账号,然后再执行下面的步骤。
# 安装epel-release
yum install -y epel-release# 备份旧的 yum 源
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
cp /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak# 获取 yum 源镜像
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo# 清理缓存
yum clean all# 重新生成缓存
yum makecache

2.下载 Python3 包

选择你需要安装的 Python3 版本进行下载 —— Index of /ftp/python/

或者通过 wget 方式下载:

wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

但下载速度比较慢,可以直接通过我的链接下载 —— Python-3.6.5.tgz

3. 解压

tar -zxvf Python-3.6.5.tgz -C /opt/module/

4.安装依赖环境

这一步只要前面 Yum 源配置对了就不会报错,如果出错了,可以直接把 /etc/yum.repos.d 下的文件全部删除,然后重新获取 Yum 源镜像,清理并更新 Yum 缓存。

yum -y install libffi-devel zlib zlib-dev zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi libffi-devel gcc gcc-c++ make

5.安装

# 提前创建一个安装(存储)目录
mkdir /usr/local/python3# 进入包的解压路径
cd /opt/module/Python-3.6.5# 指定 python3 安装的路径
./configure --prefix=/usr/local/python3

在执行命令后,可能会出现如下报错信息:

[ad@hadoop201 Python-3.6.5]$ ./configure --prefix=/usr/local/python3
checking build system type… x86_64-pc-linux-gnu
checking host system type… x86_64-pc-linux-gnu
checking for python3.6… no
checking for python3… no
checking for python… python
checking for --enable-universalsdk… no
checking for --with-universal-archs… no
checking MACHDEP… linux
checking for --without-gcc… no
checking for --with-icc… no
checking for gcc… no
checking for cc… no
checking for cl.exe… no
configure: error: in /opt/module/Python-3.6.5': configure: error: no acceptable C compiler found in $PATH
See config.log’ for more details

解决方法

这是由于没有 C 语言编译器引起的,下载后即可解决。

yum install -y gcc

重新执行命令,等待约 30s 后如下所示:

在这里插入图片描述

这里提示是否需要开启自动优化,无需理会。

进行编译安装

# 注意!!!该命令请在 Python3 的解压根路径中完成,不要切换路径!
make && make install

这个过程需要等待一两分钟。

如果安装过程中出现了报错,可以看看下面出现的报错场景,找找解决方法。

报错解决后,重新执行编译安装命令。

安装完成后,如下所示:

在这里插入图片描述

出错场景

如果出现如下报错:

Traceback (most recent call last):
File “/opt/module/Python-3.6.5/Lib/runpy.py”, line 193, in _run_module_as_main
main”, mod_spec)
File “/opt/module/Python-3.6.5/Lib/runpy.py”, line 85, in _run_code
exec(code, run_globals)
File “/opt/module/Python-3.6.5/Lib/ensurepip/main.py”, line 5, in
sys.exit(ensurepip._main())
File “/opt/module/Python-3.6.5/Lib/ensurepip/init.py”, line 204, in _main
default_pip=args.default_pip,
File “/opt/module/Python-3.6.5/Lib/ensurepip/init.py”, line 117, in _bootstrap
return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
File “/opt/module/Python-3.6.5/Lib/ensurepip/init.py”, line 27, in _run_pip
import pip
zipimport.ZipImportError: can’t decompress data; zlib not available

这是由于没有 zlib 的工具包导致的,下载该依赖包即可解决:

yum -y install zlib*

如果在安装 zlib 包时,又出现了报错:

Transaction check error:package zlib-1.2.7-21.el7_9.x86_64 is already installed错误概要
-------------

可以先卸载后再重新执行安装命令:

yum -y remove zlib-1.2.7-21.el7_9.x86_64

这一套操作下来,这个问题应该可以得到解决,zlib* 包安装完成。

在这里插入图片描述

6.创建软链接

#注意!!!这里具体的版本号如果你不是 python3.6,则需要修改成你的版本
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

7.配置 Python3 的环境变量

vi ~/.bash_profile

设置成你的安装路径:

export PYTHON_HOME=/usr/local/python3
export PATH=$PYTHON_HOME/bin:$PATH

刷新环境变量

source ~/.bash_profile

8.验证

python3 --version

在这里插入图片描述

Python3 安装完成~

为了方便后续的使用,建议更新一下 pip 版本:

pip3 install --upgrade pip

补充:安装 openssl-devel

如果没有安装 openssl-devel 包,在下载其它包时,可能会出现如下问题:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

在这里插入图片描述

请先切换到 root 账号,然后执行下载命令:

yum -y install openssl-devel

重编译:

# 注意!!!该命令请在 Python3 的解压根路径中完成!
make && make install

重编译完成后,即可正常下载。

补充:pip3 源配置

# 创建配置文件目录
mkdir ~/.pip# 创建配置文件并添加源
vi ~/.pip/pip.conf  

阿里源配置:

[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

包安装测试

在这里插入图片描述

可以看到,源已经成功的替换了,下载速度嘎嘎快。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/779997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA Artix7 Bootloader App Python升级

文章目录 软硬环境复现官方 srec_spi_bootloader例子简介Vivado硬件部分存储划分Vitis 嵌入式 BootVitis 嵌入式 Appelf转换srec合并boot和app得到mcs文件下载测试过程分析 基础知识BIT MCS HEX BINBit SwappingSREC 文件格式Vivado约束 串口Boot地址划分链接脚本修改Github Li…

五、基于KubeAdm搭建多节点K8S集群

如需查阅上一步骤,请点击下面链接:四、戴尔R630本地服务器Linux Centos7.9系统安装docker-ce-20.10.10-3.el7版本-CSDN博客文章浏览阅读727次,点赞12次,收藏13次。1、准备工作3、Linux Centos7.9系统的iDRAC远程管理、网络设置、SecureCRT远程登录终端、企业级静态ip地址配…

HarmonyOS实战开发-使用Flex容器组件,实现弹性布局效果。

介绍 本篇Codelab是基于Flex容器组件,实现弹性布局效果。弹性布局的特点是页面元素的宽度按照屏幕分辨率进行适配调整,但整体布局不变。 相关概念 Flex组件:以弹性方式布局子组件的容器组件。Search组件:搜索框组件,…

一则关于Go的高级构建指北

本文将探索Golang高级构建技巧,从而有助于创建更高效的二进制文件。 构建选项 以下是 go build 命令最常用的一些选项: -o: 指定输出文件名。默认输出文件名是主软件包的名称,在 Windows 系统中会自动添加 .exe 后缀。-v: 详细输出。该选项…

4、Cocos Creator 动画系统

目录 1、Clip 参数 2、动画编辑器 3、基本操作 更改时间轴缩放比例 移动显示区域 更改当前选中的时间轴节点 播放 / 暂停动画 修改 clip 属性 快捷键 4、模拟实验 5、动画事件 6、注意事项 参考 Animation 组件是节点上的一个组件。Clip 动画剪辑就是一份动画的声…

vue源码解析—— watch/computed的实现逻辑和区别

watch 和 computed 是 Vue 中的两个重要的响应式属性,它们在实现机制和使用上存在一些区别。 watch:用于监听数据的变化,并在数据变化时执行回调函数。可以使用 deep 配置项来开启深度监听,监听数据的子属性变化。可以使用 immedi…

基于51单片机和MAX1898的智能手机充电器设计

**单片机设计介绍,基于51单片机和MAX1898的智能手机充电器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机和MAX1898的智能手机充电器设计概要 一、引言 随着智能手机的普及,其电池续航…

网络安全接入认证-802.1X接入说明

介绍 802.1X是一个网络访问控制协议,它可以通过认证和授权来控制网络访问。它的基本原理是在网络交换机和认证服务器之间建立一个安全的通道,并要求客户端提供身份验证凭据。如果客户端提供的凭据是有效的,交换机将开启端口并允许访问。否则&…

通讯录改进———动态版本

在上一篇博客中讲完了动态内存分配,这时候我们就可以改进之前写的通讯录了,可以将其升级为动态内存的版本,既不用担心联系人满了,也不用担心内存浪费太大。 要将其改为动态版本主要是两件事,首先初始化的时候我们要动…

qt完成对话框提示

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//去掉头部this->setWindowFlag(Qt::FramelessWindowHint);//去掉空白this->setAttribute(Qt::WA_Transl…

Go的数据结构与实现【Queue】

介绍 与栈一样,队列也是最基本的数据结构之一。队列也是值的一种容器,其中值的插入和删除遵循“先进先出”(First-In-First-Out, FIFO)的原则⎯⎯也就是说,每次删除的只能是最先插入的值。 实现 队列的抽象数据类型…

《数据结构学习笔记---第六篇》---栈和队列的实现

目录 1.栈 1.1栈的概念及结构 1.2栈的实现 2.队列 2.1队列的概念及结构 ​2.2队列的实现 3.顺序栈的具体实现 3.1建头文Stack.h” 3.2创建具体接口实现文件Stack.c 3.2.1初始化 3.2.2入栈出栈 3.2.4判空 3.2.5栈的大小 3.2.6销毁栈 3.3主函数的实现 4.链队的具体实现…

SAMRTFORMS 转换PDF 发送邮件

最终成果: *&---------------------------------------------------------------------**& Report ZLC_FIND_EXIT*&---------------------------------------------------------------------**&根据T-CODE / 程序名查询出口、BADI增强*&-------…

2024年大广赛联通沃派命题解析:赛题内容一览

2024大广赛又又又又又出新命题了,它就是助力青少年积极向上,乐观自信,探享多彩人生的5G时代潮牌——联通沃派,让我们来看看命题详情吧! 联联通沃派是中国联通面向青少年群体推出的客户品牌,契合目标群体特…

基于SSM框架的校园失物招领系统:从设计思路到实现细节

末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 二、开发技术与环…

5.11 Vue配置Element UI框架

Vue配置Element UI框架 目录一、 概要二、 开发前准备1. 搭建Vue框架 三、 安装 Element UI1. 引入 Element UI 依赖2. 在 mian.js 中引入 Element UI 和相关样式:3. 按需引入(非必须, 可忽略)4. 简单构建一个主页面 目录 一、 概要 Element UI 是一个基于 Vue.js …

备考ICA----Istio实验13---使用 Istio Ingress 暴露应用

备考ICA----Istio实验13—使用Istio Ingress TLS暴露应用 1. 环境部署 清理之前实验遗留,并重新部署httpbin服务进行测试 # 清理之前的环境 kubectl delete vs httpbin kubectl delete gw mygateway # 部署httpbin kubectl apply -f istio/samples/httpbin/httpbin.yaml 确认…

vue3使用vuedraggable实现拖拽(有过渡)

1. 安装与使用 vue中vuedraggable安装: pnpm i -S vuedraggablenext或者 yarn add vuedraggablenext注意:vue2和vue3安装的是不同版本的vuedraggable,写法上也会有一些区别。 比如在vue3中使用拖拽,要以插槽的方式,…

【微服务】Sentinel(熔断降级,热点限流)

文章目录 1.熔断降级1.基本介绍1.线程堆积引出熔断降级2.示意图3.熔断,降级,限流三者之间的关系 2.熔断降级策略(以分钟为基本单位)1.慢调用比例2.异常比例3.异常数 3.熔断降级实例—慢调用比例1.需求分析2.com/sun/springcloud/c…

个人简历主页搭建系列-05:部署至 Github

前面只是本地成功部署网站,网站运行的时候我们可以通过 localhost: port 进行访问。不过其他人是无法访问我们本机部署的网站的。 接下来通过 Github Pages 服务把网站部署上去,这样大家都可以通过特定域名访问我的网站了! 创建要部署的仓库…