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登录pop3邮件服务器接收邮件的方法
Apr 30 Python
python3+PyQt5泛型委托详解
Apr 24 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
Python实现平行坐标图的两种方法小结
Jul 04 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
Feb 23 Python
PyQt5实现登录页面
May 30 Python
Python colormap库的安装和使用详情
Oct 06 Python
浅析PyCharm 的初始设置(知道)
Oct 12 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 15 Python
举例讲解Python装饰器
Dec 24 Python
python常见的占位符总结及用法
Jul 02 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
建立动态的WML站点(二)
2006/10/09 PHP
PHP中文分词 自动获取关键词介绍
2012/11/13 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
微信支付扫码支付php版
2016/07/22 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
js技巧--转义符"\"的妙用
2007/01/09 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
js设置鼠标悬停改变背景色实现详解
2019/06/26 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
Python的多维空数组赋值方法
2018/04/13 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
python 实现图片上传接口开发 并生成可以访问的图片url
2019/12/18 Python
如何用Python徒手写线性回归
2021/01/25 Python
python绘制汉诺塔
2021/03/01 Python
毕业生在校学习的自我评价分享
2013/10/08 职场文书
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
运动会100米解说词
2014/01/23 职场文书
大学生通用个人自我评价
2014/04/27 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
出租车拒载检讨书
2015/01/28 职场文书
公司年夜饭通知
2015/04/25 职场文书
解读Vue组件注册方式
2021/05/15 Vue.js