千家信息网

如何在CentOS 7上安装并配置Python 3.6环境

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这期内容当中小编将会给大家带来有关如何在CentOS 7上安装并配置Python 3.6环境,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当前***的 CentOS
千家信息网最后更新 2026年11月02日如何在CentOS 7上安装并配置Python 3.6环境

这期内容当中小编将会给大家带来有关如何在CentOS 7上安装并配置Python 3.6环境,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

当前***的 CentOS 7.3 默认安装的是 Python 2 ,并且默认的官方 yum 源中不提供 Python 3 的安装包。有些用户想要升级使用 Python 3 但实际可能有各种各样的问题,导致出错,反观一下激进的 Fedora 社区,在23的时候,就将默认的版本修改成了 Python3 (如果我没记错的话)。

先说下我所使用的系统环境, 一个新创建的 Docker 容器。 使用 cat /etc/redhat-release 可以看到运行的是 CentOS 7.3 版本。

在纯净的 CentOS 系统上安装 Python 环境主要有两种办法。 一种是通过源码编译安装,另外一种就是安装已经打好的 RPM 包。依照个人习惯,我们先来看一下如何通过源码编译的方式安装 Python 3.6 并且配置虚拟环境。

使用源码进行编译安装

基础环境

  • 先安装安装几个必须的包,以方便后续的操作

➜ yum install wget gcc make  ➜ # wget 用于下载源码包  ➜ # gcc 和 make 用于编译

  • 上 Python的官网 下载源码包

➜ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
  • 解包,解压缩

➜ xz -d Python-3.6.1.tar.xz  ➜ tar -xvf Python-3.6.1.tar

  • 编译

➜ cd Python-3.6.1  ➜ ./configure --prefix=/usr/local/python3.6 --enable-optimizations  ➜

先解释下上面的参数,--prefix 是预期安装目录,--enable-optimizations 是优化选项(LTO,PGO 等)加上这个 flag 编译后,性能有 10% 左右的优化(如果没记错的话),但是这会明显的增加编译时间。不过关于 LTO 和 PGO 其实不在今天文章的讨论范围内,建议感兴趣的可以看看 GCC 中 LTO 的具体实现。我应该不太可能去写相关的文章 哈哈哈 毕竟写起来就会停不下来。

接下来

➜ make  ➜ make install

如图,会看到出错了,提示 zlib not available 所以,我们需要装一下依赖

➜ yum install zlib-devel

那为什么需要这个依赖包呢, 其实是因为 Python 有个很重要的内建模块 zipimport 用于从 Zip 压缩包中导入模块。 而如果没有 zlib 的包,那么就无法进行解压缩了,也自然该模块就不能使用了。

当我们的依赖安装好之后,重新执行上面的编译安装的步骤,发现执行成功。

➜  /usr/local/python3.6/bin/python3 --version Python 3.6.1

此刻,我们的 Python 3 也就安装成功了。

  • 检查

编译安装完还远远不够,我们来做些检查。

当我们运行 Python 终端,输入 import bz2 的时候,会发现没有这个模块。如果你对这个模块不熟悉,那也没关系。我们输入 import sqlite3熟悉 Python 的同学应该对 sqlite3 不会太陌生,但如果你还是不熟悉的话,那你按方向键试试看。有没有发现,输出变成了^[[D^[[A 类似这样的内容?

熟悉 Python 源码的同学,肯定知道我要说什么了。但是假如你不熟悉,没关系,我来告诉你。正常来讲,在终端下我们预期当输入上方向键,会显示上一条命令,输入左方向键,可以将光标移动到左侧。但现实和我们的预期不同,什么原因?

这里涉及到了一点点关于输入设备的历史原因,简单来说就是需要有个模块来对用户的输入进行转义。回到本文的重点,就是我们编译安装的时候缺少了 readline 这个模块。既然已经发现了问题,那解决的办法其实很简单

➜ yum install readline-devel

安装完成后,重复上面的步骤,编译&&安装即可。

  • 再检查

前面只是解决了方向键输入的问题,但是我提到的那两个模块还是 import 不进来,那我们仔细的看看我们的编译过程的输出。其中有这样的一段(依据系统环境的不同,输出可能也是不一致的)

Python build finished successfully! The necessary bits to build these optional modules were not found:  _curses               bz2                   _dbm _gdbm                 _lzma                 _sqlite3 _tkinter              readline  To find the necessary bits, look in setup.py in detect_modules() for the module's name.

按照上面的提示,很明显,我们缺少了一些(可选的)模块,这些模块假如你觉得自己不会用到,那也可以不理会它。这些模块,我用到的会多一些,甚至是那个一般人都不会碰的 TK 模块 哈哈哈。解决方式就只是装一下对应的模块即可。

➜  # 解决 import bz2 报错 ➜  yum install  bzip2-devel  ➜  # 解决 import curses 报错 ➜  yum install  ncurses-devel  ➜  # 解决 import sqlite3 报错 ➜  yum install sqlite-devel  ➜  # 解决 _dbm _gdbm 缺失提醒 ➜  yum install gdbm-devel  ➜  # 解决 _lzma 缺失提醒 ➜  yum install xz-devel  ➜  # 解决 _tkinter 缺失提醒 ➜  yum install tk-devel  ➜  # 解决 readline 缺失提醒及方向键行为非预期的问题 ➜  yum install readline-devel

当这些模块都装完,重新编译会发现提醒已经消失,安装即可。

使用 rpm 包进行安装

先来介绍一下 IUS 这个社区,名字的全写是【Inline with Upstream Stable】取首字母,它主要是一个提供新版本RPM包的社区。具体使用可以查看官方文档 简单说来就只要按下面的命令操作即可。

➜ yum -y install https://centos7.iuscommunity.org/ius-release.rpm

添加 IUS 之后,先创建缓存元数据,再进行安装即可

➜ yum makecache  ➜ yum install python36u  ➜ yum -y install python36u-pip  ➜ yum -y install python36u-devel

完成后直接终端输入 python3 即可。

环境配置

上面只是写了 Python 的安装,如果是使用 RPM 的方式安装的话,那直接是可用的。但如果是源码编译的,总不至于每次都输入一大串路径吧。所以解决方法很简单,加个链接即可。

➜ ln -s /usr/local/python3.6/bin/python3 /usr/bin/python3

另外,当系统中存在多个 Python 版本的时候,尽量去避免环境污染。我个人比较推荐使用 virtualenv 创建独立的虚拟环境,我日常中也是这样用的。不过,当我们安装完 Python 3.6 后,可以直接执行下面的命令进行虚拟环境的创建。

➜ python3 -m venv py3  ➜ source py3/bin/activate  (py3) ➜ python -V  Python 3.6.1


CentOS 7 上安装Python 3.6 主要有两种方式,源码编译和安装 RPM 包。

对于想快速使用源码配置环境但并不想关心具体原因的读者,可以直接使用我GitHub上提供的这个脚本进行安装 https://raw.githubusercontent.com/tao12345666333/dotfiles/master/env/install_Python36_on_CentOS7.sh

另外Python 3.6 可直接使用 python3 -m venv venv_name 创建虚拟环境。

上述就是小编为大家分享的如何在CentOS 7上安装并配置Python 3.6环境了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

编译 模块 环境 源码 输入 面的 配置 方向 就是 方式 时候 系统 缺失 问题 内容 原因 只是 命令 文章 版本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南云网互联网络科技有限公司 科技互联网产品 科技信息互联网 互联网科技的发展 齐家互联网科技 狮子座互联网科技培训 上海卓越科技 互联网 中正互联网科技招聘 中国最先进互联网科技公司 新华互联网科技2019 昭通云南众福互联网科技有限公司 知域互联网科技有限公司大骗子 中国互联网公司排名锤子科技 南博望互联网科技有限公司 2021互联网科技公司排名 福建互联网展示科技馆设计 陕西九四连强互联网科技有限公司 银川新华互联网科技学校原画 互联网时代高科技布局 悟空问答互联网科技 互联网科技企业 华服互联网科技怎么样 智慧科技互联网 济南华为互联网科技产业总部基地 团飞科技与伯堂互联网服务平台 特约风豹互联网科技为什么扣费 江苏互联网智能科技软件 互联网科技企业商标注意事项 上海万顺科技互联网有限公司招聘 科技互联网专业工作会议发言稿
0