CentOS7.3编译安装Python3.6.2的方法


Posted in Python onJanuary 22, 2018

我使用的是 CentOS7.3 安装 Python3.6.2

1.查看是否已经安装Python

Centos7 默认安装了Python2.7.5 因为一些命令要用它比如 yum 它使用的是 python2.7.5.

使用 python -V 命令查看一下是否安装 Python:

# python -V
Python 2.7.5

然后查看一下 Python 可执行文件的位置:

# which python
/usr/bin/python

进入到 bin 目录:

# cd /usr/bin/
# ls -al python*
lrwxrwxrwx. 1 root root  34 8月 25 08:18 python -> python2
lrwxrwxrwx. 1 root root  9 8月 19 21:32 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 6 2016 python2.7

可以看到可执行文件 python 指向 python2 ,python2 又指向 python2.7 也就是说 Python 命令执行的系统预装的 Python2.7.

要安装 Python 的其他版本先执行 mv python python.bak 命令备份 python 文件。

# mv python python.bak
# ls -al python*
lrwxrwxrwx. 1 root root  9 8月 19 21:32 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 6 2016 python2.7
lrwxrwxrwx. 1 root root  7 8月 19 21:32 python.bak -> python2

2.修改 yum 配置文件

因为yum使用CentOS7.3默认安装的Python 2.7.5,因此替换为Python 3.6.2后无法正常工作.

# yum repolist
 File "/usr/bin/yum", line 30
  except KeyboardInterrupt, e:
              ^
SyntaxError: invalid syntax

因此修改yum配置文件,继续使用Python2.7.5.

更改yum脚本的python依赖

# cd /usr/bin
# ls -al yum*
-rwxr-xr-x. 1 root root  801 11月 15 2016 yum
-rwxr-xr-x. 1 root root 9429 11月 6 2016 yum-builddep
-rwxr-xr-x. 1 root root 8582 11月 6 2016 yum-config-manager
-rwxr-xr-x. 1 root root 7609 11月 6 2016 yum-debug-dump
-rwxr-xr-x. 1 root root 7903 11月 6 2016 yum-debug-restore
-rwxr-xr-x. 1 root root 10999 11月 6 2016 yumdownloader
-rwxr-xr-x. 1 root root 11031 11月 6 2016 yum-groups-manager

使用vim更改以上文件头,把 #!/usr/bin/python 改为 #!/usr/bin/python2

修改gnome-tweak-tool配置文件

# vim /usr/bin/gnome-tweak-tool

把文件头 #!/usr/bin/python 改为 #!/usr/bin/python2

修改urlgrabber配置文件

# vim /usr/libexec/urlgrabber-ext-down

把文件头 #!/usr/bin/python 改为 #!/usr/bin/python2

3.编译环境准备

安装开发套件用于编译 Python3.6.2 源码

# yum groupinstall 'Development Tools'

安装 python3.6.2 可能会使用到的依赖

# yum install -y ncurses-libs zlib-devel mysql-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

4.安装 Python3.6.2

到官网获取最新版的 Python3.6.2 下载地址 https://www.python.org/downloads/source/

CentOS7.3编译安装Python3.6.2的方法

下载 tgz.xz 包就可以了. Python-3.6.2.tar.xz ,这个是 Python 的源码.

执行wget 命令直接下载到当前文件夹:

# wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

解包:

# xz -d Python-3.6.2.tar.xz

解压缩:

# tar -xvf Python-3.6.2.tar.xz

解压缩之后出现 Python-3.6.2 文件夹.

# ll
drwxr-xr-x. 17 max max   4096 8月 25 01:22 Python-3.6.2
-rw-rw-r--. 1 max max 83169280 7月 17 11:55 Python-3.6.2.tar

进入到Python-3.6.2文件夹下,编译源码

# cd Python-3.6.2/
# ./configure --prefix=/usr/local/python3.6 --enable-optimizations

先解释上面的参数:

--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share,比较凌乱.

如果配置--prefix,如:./configure --prefix=/usr/local/python3.6可以把所有资源文件放在/usr/local/python3.6的路径中,不会杂乱.用了--prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个相同的操作系统机器即可.当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall.

--enable-optimizations 是优化选项(LTO,PGO 等)加上这个 flag 编译后,性能有 10% 左右的优化,但是这会明显的增加编译时间,老久了.

./configure命令执行完毕之后创建一个文件 Makefile, 供下面的make命令使用,执行make install之后就会把程序安装到我们指定的文件夹中去.

然后执行make命令

# make

再执行make install命令

# make install

安装完成之后进入到/usr/local/python3.6目录,可以看到Python的可执行文件目录bin等相关目录.

# cd /usr/local/python3.6
# ll
总用量 4
drwxr-xr-x. 2 root root 4096 8月 25 08:07 bin
drwxr-xr-x. 3 root root  24 8月 25 08:07 include
drwxr-xr-x. 4 root root  63 8月 25 08:07 lib
drwxr-xr-x. 3 root root  17 8月 25 08:07 share

进入bin目录,可以看到很多相关的可执行文件,目前只需要关注python3.6、pip3.6.

# cd bin
# ll
总用量 22552
lrwxrwxrwx. 1 root root    8 8月 25 08:07 2to3 -> 2to3-3.6
-rwxr-xr-x. 1 root root   111 8月 25 08:07 2to3-3.6
-rwxr-xr-x. 1 root root   252 8月 25 08:07 easy_install-3.6
lrwxrwxrwx. 1 root root    7 8月 25 08:07 idle3 -> idle3.6
-rwxr-xr-x. 1 root root   109 8月 25 08:07 idle3.6
-rwxr-xr-x. 1 root root   224 8月 25 08:07 pip3
-rwxr-xr-x. 1 root root   224 8月 25 08:07 pip3.6
lrwxrwxrwx. 1 root root    8 8月 25 08:07 pydoc3 -> pydoc3.6
-rwxr-xr-x. 1 root root    94 8月 25 08:07 pydoc3.6
lrwxrwxrwx. 1 root root    9 8月 25 08:07 python3 -> python3.6
-rwxr-xr-x. 2 root root 11526224 8月 25 08:06 python3.6
lrwxrwxrwx. 1 root root    17 8月 25 08:07 python3.6-config -> python3.6m-config
-rwxr-xr-x. 2 root root 11526224 8月 25 08:06 python3.6m
-rwxr-xr-x. 1 root root   3107 8月 25 08:07 python3.6m-config
lrwxrwxrwx. 1 root root    16 8月 25 08:07 python3-config -> python3.6-config
lrwxrwxrwx. 1 root root    10 8月 25 08:07 pyvenv -> pyvenv-3.6
-rwxr-xr-x. 1 root root   451 8月 25 08:07 pyvenv-3.6

5.修改软链接配置 Python3.6 、pip3.6 为系统默认

# ln -s /usr/local/python3.6/bin/python3.6 /usr/bin/python
# ln -s /usr/local/python3.6/bin/pip3.6 /usr/bin/pip

进入/usr/bin目录查看相关软链接配置结果:

# cd /usr/bin
# ls -al python*
lrwxrwxrwx. 1 root root  34 8月 25 08:18 python -> /usr/local/python3.6/bin/python3.6
lrwxrwxrwx. 1 root root  9 8月 19 21:32 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 6 2016 python2.7
lrwxrwxrwx. 1 root root  7 8月 19 21:32 python.bak -> python2

# ls -al pip*
lrwxrwxrwx. 1 root root 31 8月 25 08:21 pip -> /usr/local/python3.6/bin/pip3.6

查看系统默认 Python、pip版本:

# python -V
Python 3.6.2

# python2 -V
Python 2.7.5

# pip -V
pip 9.0.1 from /usr/local/python3.6/lib/python3.6/site-packages (python 3.6)

现在系统默认的python版本为Python 3.6.2,而CentOS7.3默认安装的Python 2.7.5现在可以使用python2调用.pip 也变成了最新版本的.

到这里CentOS7.3 编译安装 Python3.6.2就完成了!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现数通设备端口监控示例
Apr 02 Python
Python缩进和冒号详解
Jun 01 Python
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
让python 3支持mysqldb的解决方法
Feb 14 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
Python中实现switch功能实例解析
Jan 11 Python
python 列表降维的实例讲解
Jun 28 Python
Python 中导入csv数据的三种方法
Nov 01 Python
在python中logger setlevel没有生效的解决
Feb 21 Python
Python通过4种方式实现进程数据通信
Mar 12 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
python绘制云雨图raincloud plot
Aug 05 Python
Python OpenCV实现图片上输出中文
Jan 22 #Python
python批量替换页眉页脚实例代码
Jan 22 #Python
python解析html提取数据,并生成word文档实例解析
Jan 22 #Python
Python复制Word内容并使用格式设字体与大小实例代码
Jan 22 #Python
Python读取word文本操作详解
Jan 22 #Python
python导出hive数据表的schema实例代码
Jan 22 #Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 #Python
You might like
zend framework多模块多布局配置
2011/02/26 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
IE6 fixed的完美解决方案
2011/03/31 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
Python构建XML树结构的方法示例
2017/06/30 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
python定时任务 sched模块用法实例
2019/11/04 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
Python接口测试get请求过程详解
2020/02/28 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
纯CSS3实现扇形动画菜单(简化版)实例源码
2017/01/17 HTML / CSS
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
介绍一下except的用法和作用
2015/01/22 面试题
高三毕业生自我鉴定
2013/12/20 职场文书
岗位职责说明书模板
2014/07/30 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
催款通知书范文
2015/04/17 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
校长新学期寄语2016
2015/12/04 职场文书
高中美术教学反思
2016/02/17 职场文书