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 相关文章推荐
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 Python
Python中的模块和包概念介绍
Apr 13 Python
python使用Queue在多个子进程间交换数据的方法
Apr 18 Python
Python产生Gnuplot绘图数据的方法
Nov 09 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
Django之PopUp的具体实现方法
Aug 31 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
Oct 24 Python
详解从Django Allauth中进行登录改造小结
Dec 18 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
Feb 07 Python
如何使用python传入不确定个数参数
Feb 18 Python
python如何绘制疫情图
Sep 16 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 22 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
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
用正则表达式替换图片地址img标签
2013/11/22 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
python正则表达式抓取成语网站
2013/11/20 Python
python3个性签名设计实现代码
2018/06/19 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
python基于socket函数实现端口扫描
2020/05/28 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
办公文员的工作岗位职责
2013/11/12 职场文书
简历上的自我评价
2014/02/03 职场文书
销售主管岗位职责
2014/02/08 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
技术总监管理职责范本
2014/03/06 职场文书
成语的广告词
2014/03/19 职场文书
财务工作疏忽检讨书
2014/09/11 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python