centos上如何装python_如何在 CentOS 7 上安装 Python 3_哈啾路亚的博客-程序员宅基地

技术标签: centos上如何装python  

当前最新的 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 环境路径:

[[email protected] ~]# which python

/opt/rh/rh-python36/root/usr/bin/python

查看 Python 当前版本:

[[email protected] ~]# 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

进入解压目录:

[[email protected] ~]# cd Python-3.7.0

[[email protected] 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. 查看版本

[[email protected] ~]# 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)工具就不能使用了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_35466750/article/details/114490524

智能推荐

NSStringDrawingOptions_yinachong的博客-程序员宅基地

NSStringDrawingTruncatesLastVisibleLine:如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。如果没有指定NSStringDrawingUsesLineFragmentOrigin选项,则该选项被忽略。NSStringDrawingUsesLineFragmentOrigin:绘制文本时使用 line fragement or

条件注解@ConditionalOnBean失效原因_zhm_sky的博客-程序员宅基地_conditionalonbean不生效

测试环境(配置类)@Import({User.class,Pet.class})@Configuration(proxyBeanMethods = true)public class MyConfig { @Bean @ConditionalOnBean(name = "cat") public User user(){ return new User("航书", 12); } @Bean("cat") public

一重指针、二重指针做函数参数的深刻分析(虽然很基础,但要深刻理解)_ShenHang_的博客-程序员宅基地

一重指针做函数参数#include<iostream>using namespace std;void change(int *p){ *p = 20; p++; cout << p << endl;}int main() { int a = 10; change(&a); cout << &a <&lt...

java设置图片点击渐变透明,图片实现渐变/透明效果_weixin_39569753的博客-程序员宅基地

众所周知,图片等一些盒子都可以利用opacity属性来设置不透明度,但是前两天我朋友忽然给我一个截图,截图效果如下图中红框圈住的位置图片或者说摄像头采集的画面出现了渐变到透明,可以清楚的看到可以看到后面小哥的胳膊,然后问我如何实现这种效果,这下把我难住了(呵 天天给我出难题),我开始在个大论坛开始寻找解决方案;忽然在前天,日常逛论坛时看到一个文字投影的效果,而后忽然灵机一动就想,能不能变相的实现前...

java笔记_笑容温暖城寨的博客-程序员宅基地

安卓课的Java扩展笔记包类命名规范总结输出换行与不换行mian方法中的args参数Math类快捷输出语句static关键字定义无参方法定义带返回值方法包package com.eoe.basic.day01;//包名 在java当中用.表示windos中的/,一般格式:com.公司名.项目名.业务模块名称例如:com.sina.crm.user类命名规范总结1、java中可以有多个类2、java中可以有多个类,但是最多只有一个类的类名和文件名相同3、如果一个类被public修饰,那该类

一、网络游戏架构的前世今生(2)_王元恺David的博客-程序员宅基地

网络游戏架构演进史,优化游戏网络,自定义网络协议

随便推点

oracle设置core文件大小,Linux的Core文件设置与调试_李daxin的博客-程序员宅基地

一、运行时错误任何人写程序都会出错,正如《C++编程规范》所说,真正可怕的错误不是编译时的错误,而是运行时错误。有的程序可以通过编译, 但在运行时会出现Segment fault(段错误)这通常都是指针错误(一般就是空指针)引起的,或者访问了不能访问的内存(数组越界,系统保护)二、core文件我们不可能用GDB一句一句的去找,真正的英雄都善于使用手中的武器。这就是core file所谓core,就...

redis客户端连接遇到的坑,记录一下_choujulong7459的博客-程序员宅基地

期间出现的错误如下:1.connect timeout2.connect refused3.遗失对主机的连接denied redis is running in protected mode。。。。。。总结处理这些报错的步骤:1.关闭centos防火墙2.修改redis.conf文...

[原创]FineUI秘密花园(六) — 表单控件_hong2511的博客-程序员宅基地

FineUI中有哪些常用的表单控件,它们有什么共同点和不同点,这一篇文章我们会详细解说。 表单控件的公共属性 所有的表单都具有如下属性: ShowLabel:是否显示标签(默认值:t

fineui mysql_FineUI 相关_卖家胖蝌蚪的博客-程序员宅基地

FineUI 开源版(原ExtAsp.Net)Last updated:2017-03SURFSKYhttp://pan.baidu.com/share/home?uk=170857326#category/type=0---------------------------------------------------配置&预设http://fineui.com/demo/#/demo/...

手把手教你使用FineUI+动软代码生成器开发一个b/s结构的取送货管理信息系统(附源码)之开篇_编程鸭的博客-程序员宅基地

一 本系列随笔概览及产生的背景近阶段接到一些b/s类型的软件项目,但是团队成员之前大部分没有这方面的开发经验,于是自己选择了一套目前网上比较容易上手的开发框架(FineUI),计划录制一套视频讲座,来讲解如何利用FineUI快速开发一个小型的b/s结构的管理系统,已达到帮助团队成员快速掌握b/s结构信息系统的开发方法。源码位置:https://github.com/kamiba/FineU...