如何在 CentOS 7 上安装 Python 3
当前最新的 CentOS 7.5 默认安装的是 Python 2.7.5,并且默认的官方 yum 源中不提供 Python 3 的安装包。这里主要介绍两种在 CentOS 7 中安装 Python 3 的方法。
使用 SCL 安装
1. 启用 SCL
SCL 是一个社区项目,它可以在同一系统上构建,安装和使用多个版本的软件,而不会影响系统默认软件包。
yum -y install centos-release-scl
2. 安装 Python
现在我们可以访问SCL存储库,我们可以安装我们需要的任何Python 3.x版本,目前最新版本为 Python 3.6。
yum -y install rh-python36
3. 修改环境变量
要访问Python 3.6,需要使用 scl 工具为系统环境变量添加自定义路径。
scl enable rh-python36 bash
4. 查看安装信息
查看 Python 环境路径:
[root@localhost ~]# which python
/opt/rh/rh-python36/root/usr/bin/python
查看 Python 当前版本:
[root@localhost ~]# python --version
Python 3.6.3
编译源码安装
1. 基本工具
- wget(网络下载工具)
- gcc(基于C/C++的编译器)
- make(工程化编译工具)
yum -y install wget gcc make
2. 安装依赖
- bzip2-devel(解决 import bz2 报错)
- ncurses-devel(解决 import curses 报错)
- sqlite-devel(解决 import sqlite3 报错)
- gdbm-devel(解决 _dbm _gdbm 缺失)
- xz-devel(解决 _lzma 缺失)
- tk-devel(解决 _tkinter 缺失)
- readline-devel(解决 readline 缺失)
- libffi-devel(解决 _ctypes 缺失)
yum -y install bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel readline-devel libffi-devel
3. 编译源码
下载源码包:
wget -c https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
解压源码包:
tar -zxvf Python-3.7.0.tgz
进入解压目录:
[root@localhost ~]# cd Python-3.7.0
[root@localhost Python-3.7.0]#
配置安装目录:
./configure prefix=/usr/local/python3
编译并安装:
make && make install
4. 添加链接
在用户环境变量目录下,创建一个启动程序的软链接。
ln -s /usr/local/python3/bin/python3.7 /usr/local/bin/python
5. 查看版本
[root@localhost ~]# python --version
Python 3.7.0
SLC 与编译安装各有优缺点。
SLC 方式安装更简单,不需要考虑依赖的问题。而且默认安装在 /opt 目录下(相当于 Windows 中 D:\SoftWare),不影响系统环境,直接 rm -rf 也没关系。局限在于 SLC 只提供 python3.4 - python3.6 的版本,并且会修改 $PATH 的路径。
编译安装则可以选择任意 python 的版本(只要能下载的到),但是编译与安装过程中会遇到很多 No module named 错误。如果再将启动程序软链接添加到系统环境变量目录(/usr/bin)下,依赖 python2 的 yum(#!/usr/bin/python)工具就不能使用了。
原文地址:https://segmentfault.com/a/1190000016156927
如何在 CentOS 7 上安装 Python 3的更多相关文章
- 如何在 CentOS 7 上安装 Nginx
本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Nginx 读作 engine x, 是一个免费的.开源的.高性能的 HTTP 和反向代理服务,主要负责负载一些访问量比较大的站点. ...
- 如何在CentOS 7上安装newman
前提:先安装nodejs,详见:如何在CentOS 7上安装Node.js和npm #sudo npm install -g newman 结果: /usr/local/bin/newman -> ...
- 如何在 CentOS 7 上安装 Redis 服务器
大家好,本文的主题是 Redis,我们将要在 CentOS 7 上安装它.编译源代码,安装二进制文件,创建.安装文件.在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就 ...
- 如何在CentOS 7上安装Htop
在本教程中,我们将向您介绍如何在CentOS 7服务器上安装和配置Htop.对于那些不知道的人,Htop 是为Linux编写的一个交互式实时系统监视进程查看器.它被设计为替代Unix程序的顶部.它显示 ...
- 如何在CentOS 7上安装Munin
在CentOS 7上安装Munin 首先我们需要在我们的系统中添加EPEL仓库. yum install epel-release 步骤2.安装LAMP(Linux,Apache,MariaDB,PH ...
- 如何在CentOS 7上安装Yarn
Yarn是与npm兼容的JavaScript软件包管理器,可帮助自动化安装,更新,配置和删除npm软件包的过程. 它的创建是为了解决npm的一系列问题,例如通过并行化操作并减少与网络连接有关的错误来加 ...
- 如何在CentOS 7上安装Node.js和npm
Node.js是一个跨平台的JavaScript运行时环境,允许在服务器端执行JavaScript代码.Node.js主要用于后端,但也作为全栈和前端解决方案而流行. npm,Node软件包管理器的缩 ...
- 如何在 CentOS 7 上安装 Docker
Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容器中开发应用程序,并且 ...
- 如何在CentOS 7上安装Percona服务器
在这篇文章中我们将了解关于 Percona 服务器,一个开源的MySQL,MariaDB的替代品.InnoDB的数据库引擎使得Percona 服务器非常有吸引力,如果你需要的高性能,高可靠性和高性价比 ...
随机推荐
- Java怎么把一个.log文件,以text文件方式打开,显示在桌面
总要有一个开始吧 群里面有一个哥们,问这个问题,索性记录下来, quextion: Java怎么把一个.log文件,以text文件方式打开,显示在桌面 anwser: 这里注意一个问题:拼接路径的时候 ...
- 牛客练习赛41E(球的体积并)
球冠公式是\(\frac{\pi h^2(3R-h)}{3}\),这样再余弦公式用\(R_a\)和\(R_b\)导一导两个球冠的\(h\)就做完了.算是补了个camp时没做出来的小坑了. #inclu ...
- redis--StringRedisTemplate和RedisTemplate区别
StringRedisTemplate: 1).只能存储string类型的值,因此不能存储如对象 2).序列化为string,如: RedisTemplate: 1).可以存储任意类型,含对象. 2) ...
- Hypertext Application Language(HAL)
Hypertext Application Language(HAL) HAL,全称为Hypertext Application Language,它是一种简单的数据格式,它能以一种简单.统一的形式, ...
- Vijos 1002 过河 dp + 思维
https://www.vijos.org/p/1002 设dp[i]表示跳到了第i个点,需要的最小的步数. 所以复杂度O(L * T), 不行 注意到T最大是10, 所以dp[i]最多只由10项递推 ...
- Ubuntu搭建WordPress-MySQL-Apache
目标 技术博客www.xifarm.com有5年时间了. 原来在虚拟机/VPS上搭建,不过都是Windows系统下的. 最近突发奇想,试试迁移到Linux的Unbuntu下.说干就干,抽空用了大约3天 ...
- JDK8下的HashMap有什么特别之处?
一.前言 上篇认真的分析了在JDK7下的HashMap, 如果还没看过的或者忘记了的可以先去回顾下,这样可以更好的了解JDK8下的HashMap基于JDK7做了什么改动.分析JDK8下的HashMap ...
- Android tess_two Android图片文字识别
文字识别一般都用的tesseract-ocr. GitHub:https://github.com/tesseract-ocr/tesseract 而Android对应的比较推荐的有个tess-two ...
- Web Api2中使用Session
要在webApi里面使用Session必须在Global.asax插入 public override void Init() { this.PostAuthenticateRequest += (s ...
- Java之栈空间和堆空间
1.变量的命名 (1)由字母,数字和下划线构成,首字母以字母或下划线开头 (2)变量的命名遵循见名知义 (3)Java变量命名建议不用中文 (4)变量名首字母建议不用大写字母开头 (5)用驼峰命名法命 ...