CentOS7安装Python3.7.0_centos7 安装python3_「已注销」的博客-程序员宝宝

技术标签: 环境配置  Centos7  Python3.7  

说明:对于新手,就像我自己一样,在刚接触Linux系统的时候,对于安装配置各种环境总是比较困惑,因为命令较多,步骤也多,漏掉一步有时会出现各种错误,所以参考别人的文档,总结了一下配置Python3.7的详细步骤。对于Python的其它版本,方法是一样的。步骤中出现的命令,除了username为自己修改实际名字外,其它均可完全复制,具体的参数,比如解压时-x的含义则不过多解释,可以自己help一下。

环境:虚拟机下的CentOS7,Python-3.7.0.tar.xz

步骤

1,可选则安装Python之前更新yum,当然需要管理员权限,注意即可。简单起见,整个安装过程可以都采用管理员运行,在安装CentOS7的时候可能不同需求安装的初始包也不相同,比如有的安装了开发工具(Development Tools),有的没有安装,没有安装的可能需要手动安装一下。因为我们要安装的是3.7,3.7较之前的版本需要一个新的依赖包libffi-devel,需要安装一下,否则后面make会出错。

# yum update
# yum groupinstall "Development Tools"
# yum -y install libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel zlib*

2,选择或不选择第1步,接下来就是我们开始安装Python3了。我对于文件的放置有一种偏执,比如有的文件显示乱码就想把它改名字或者删掉或者查找怎么回事,反正要修正过来,所以我会建议把文件放在该放的地方。

3,下载Python源码。下载方式有多种,直接浏览器,或下载软件,或命令行。比如我们把下载的源码包放在/home/username/Downloads文件夹下。

# cd /home/username/Downloads
# wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz

4,文件目录不变,解压文件。解压出文件夹Python-3.7.0。

# tar -xf Python-3.7.0.tar.xz

5,切换工作目录到/usr/local,新建python3文件夹,并将解压出来的Python-3.7.0文件夹移动到/usr/local/python3目录下。

# cd /usr/local
# mkdir python3
# mv /home/username/Downloads/Python-3.7.0 python3

6,编译安装。

# cd python3/Python-3.7.0
# ./configure --prefix=/usr/local/python3 --enable-optimizations
# make
# make install

7,不出意外的话,需要等待运行一段时间,安装就完成了。但整个环境配置还没结束。系统默认采用的Python2,运行命令

# python --version

可以查到系统安装的python2的版本信息,但这不是我们想要的,因为我们需要用的是python3,我们期望的是在命令行运行python命令时是使用的python3即我们安装的版本,所以我们需要修改一下系统的调用,正式的说法也就是软链接。前两条命令可以理解为将python2的调用重新命名以使得python这个命令成为调用python3的命令。如果想保存两个版本,那么就不需要下面代码的第二行命令,将三四行最后加上3,即 /usr/bin/python3,如果这样修改,那么就不需要第8步。

# cd /usr/bin
# mv python python_old
# ln -s /usr/local/python3/bin/python3.7 /usr/bin/python
# ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip

8,到此,还需要再次修改一些文件,因为系统依赖的是python2,yum包管理工具也是使用的python2版本,但我们把系统调用改为了3,所以需要修改一些文件使yum能正常运行。

# cd /usr/bin
# ls -ol yum*

可以看到如下结果,包括gnome-tweak-tool和urlgrabber在内共8个文件:

依次用vim打开每个文件,如图

# vim yum

将文件头部 #!/usr/bin/python改为图中所示的样子,即加一个2,修改所有上面8个文件,保存关闭即可。对于vim的操作,i 插入模式,ESC退出,:末行模式,wq,保存退出。更详细的使用方法可自行找文档学习。

9,如果需要更换python的pip下载源,可以通过命令行临时指定,

# pip install packagename -i http://pypi.douban.com/simple

也可以添加配置文件,

# cd ~
# mkdir .pip
# cd .pip
# vim pip.conf

配置文件内容如下,源地址可以自行修改。

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

10,大功告成,后续可安装Pycharm,Atom等IDE,也可以pip安装python虚拟环境。

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

智能推荐

基础差不敢学AI?按照这个方法,小白也能跟着学!_无双.的博客-程序员宝宝

随着 AI 技术的逐渐成熟,逐渐成为当代程序员“保值”的关键技术能力。但是,并不是所有人站在风口上都能非得起来。比如:是深造机器学习还是深度学习?那么多知识点,如何就重避轻的开始入门学习?...

javascript中的previousSibling和nextSibling的正确用法_ym1989的博客-程序员宝宝

<br /> <br />    额滴神,努力了一天终于把这个问题给解决了。原来我不仅仅是previousSibling不知道怎么用,连子结点和父节点也没有弄清楚。<br />大伙千万不要嘲笑,这些问题可能很简单,但对于我这初学的菜鸟,这些问题还是把我难了几天。<br />   我做的时间的验证,格式是不需要验证的,只需要验证起始日期与结束日期的大小,但是因为输入页面是批量的,而且每一行又是自动生成的,这样就不能用id来作为参数,只能用节点。这就给验证增加了难度。<br />    以下是jsp页面的部分:

压缩感知基本概括——三大基本问题_压缩感知三要素_Celia_Tan的博客-程序员宝宝

压缩感知是对于N维的信号x,使用小的观测维数M≪N,设计一个M*N的测量矩阵Φ,得到测量结果y=ϕx,最终通过测得的y和已知的矩阵Φ来求得信号x。x信号特点:具有稀疏性。即信号本身或者使用一组基地展开后大多数系数为0。在压缩感知研究中主要有三个问题1.如何找到稀疏信号或者说如何使得信号变成稀疏信号2.找到合适的测量矩阵Φ,测量矩阵必须满足一定条件才能正确恢复信号3.从测得的y...

ubuntu系统20.04服务器是啥,介绍Ubuntu 20.04服务器中的Netplan及配置静态IP地址_米线抄手麻辣烫的博客-程序员宝宝

本文介绍的内容有:Ubuntu 20.04中的Netplan、禁用cloud-init配置、识别接口和IP信息、在Ubuntu 20.04服务器上配置静态IP地址。本文主要介绍的是使用Netplan在Ubuntu 20.04服务器中配置静态IP的方法。前言通常,Ubuntu的默认设置是通过DHCP服务器自动获取IP地址,这对台式机系统来说非常有用,因为它不需要任何更改。但是,始终建议为Ubuntu...

python编码软件_python编码问题_weixin_39712969的博客-程序员宝宝

一、编码历史:1、ASCII(主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。2、为了处理汉字,程序员设计了用于简体中文的GB2312,但GB2312 支持的汉字太少,之后扩展规范为GBK,之后为GB18030(手机、MP3一般只支持GB2312)。从ASCII、GB2312、GBK 到GB1...

随便推点

京东数科(大数据部门实习一面)_-玫瑰少年-的博客-程序员宝宝

sql语句中select、 from、 where、 group by 、having、 order by的执行顺序分析前面从from(表)where(按条件取出数据)goup by(再对取出的数据进行分组)having(分组之后再过滤得到最新数据集)select(按照设置列从数据集里面取出数据)order by(对取出的数据进行排序)所以执行顺序:from—where–group by—having—select—order by反射的第一步是获取class对象,那如何获取class对象?通过对

过安全狗php一句话,.[WEB]绕过安全狗与360PHP一句话的编写_weixin_39623411的博客-程序员宝宝

来源;http://bbs.ichunqiu.com/thread-9012-1-1.html?from=ch00x01安全狗的确是让人很头痛,尤其是在上传一句话或者写入一句话的时候,会被安全狗拦截从而拿不下shell。当然,安全狗是最简单的一款waf,很容易就进行一个绕过。00x02对于绕过安全狗跟360,我姿势不多,但是却很实用为以下两种1.#可变变量2.#引用变量00x03##可变变量(菜刀...

arm的字节对齐问题总结(转)_dashen2259的博客-程序员宝宝

问题由来:pc的lsb总是0,因为代码至少要字对齐。cm3的指令至少是半字对齐的(16)一、啥是字对齐?为啥要字对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问都可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就是对齐。字节对齐的原因大致是如下两条:1、平台原因(移植原因):不是所有的硬...

通过客户端编程方式调用webService及踩过的坑_执笔话龙的博客-程序员宝宝

   最近碰到要通过对方提供的webService向对方数据库写入数据,挺头疼的,花费了一定时间,记录踩到过的坑。      package com.steward.controller.position;public class WebServiceUtil {    public static Object submit(Object[] obj) throws Exception{ S...

Web前端技术-程序员宝宝

Web前端技术一、HTTP协议HTTP协议(HyperText Transfer Protocol,超文本传输协议), 针对网络资源的请求和响应定义的网络应用协议。网络资源一般是HTML网页、CSS样式、Javascript脚本、json以及音/视频等媒体资源。1.1 请求报文客户端发起请求之前, 首先要确认url(统一资源定位符)和请求方法 method(GET、POST、PUT、PATCH、DELETE、OPTION等);其次确定请求的数据body和请求头 header。【如】在浏览器

Ubuntu14.04 Remmina连接远程桌面时,报错:无法连接到RDP服务器 的解决办法_remmina无法连接到rdp服务器_丶metallice丶的博客-程序员宝宝

嗯,网上很多人说直接删掉.freerdp文件:sudo rm -f ~/.freerdp/know_hosts不过我试了一下不好用,我也不知道为什么,可能是我没有正确删除掉吧。那么可以试试这种方法,这种方法也有助于小白(我)理解为什么rm -f那个文件了。重点:直接找到~/.freerdp/know_hosts这个文件,然后我用vim打开,找到连接不上的那个IP,dd两下删除那句。ok,解决了。...

推荐文章

热门文章

相关标签