Centos7源码安装Python3.x
一、前言
最近学习Python,,由于centos7系统自带的Python2.7.5,Python2.x与Python3.x的语法有很多不同的地方,所以想在centos7下搭建Python3.x开发环境。我实践了多次,把我的实践总结一下。在Linux中利用源码包安装软件最重要的就是要仔细阅读安装包当中的README INSTALL两个说明文件,这两个文件会清楚的告诉你如何可以正确的完成这个软件的安装!
二、准备环境及软件列表
主要在Windows7上,使用virtualbox5.2虚拟机安装centos7系统,默认Python版本是Python2.7.5,要安装Python3.5.2。
在centos7下查询Python版本:
[root@master ~]# python
Python 2.7.5 (default, Nov 6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
三、安装Python3.5.2
1、下载Python3.5.2 .tgz :[root@master download]# wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
2、安装python3.5.2可能使用的依赖包:
[root@master ~]# yum install openssl-devel bzip2-devel expat-devel gdbm-develreadline-devel sqlite-devel3、解压 Python-3.5.2.tgz:
[root@master download]# tar -xzvf Python-3.5.2.tgz
4、 进入Python3.5执行./configure:
[root@master download]# cd Python-3.5.2/
[root@master Python-3.5.2]# ./configure --prefix=/app/python3
5、 进入Python3.5执行 make&&make install:
[root@master Python-3.5.2]# make && make install
6、查询原来自带Python2.7.5连接:
[root@master Python-3.5.2]# cd /usr/bin/
[root@master bin]# ll |grep python
-rwxr-xr-x. 1 root root 11232 Dec 2 2016 abrt-action-analyze-python
-rwxr-xr-x. 1 root root 7208 Nov 7 2016 pmpython
-rwxr-xr-x. 1 root root 7136 Nov 6 2016 python2.7
lrwxrwxrwx. 1 root root 7 Dec 12 19:57 python -> python2
lrwxrwxrwx. 1 root root 9 Dec 12 19:57 python2 -> python2.7
7、备份原来连接,更改为新Python3.5.2连接:
[root@master bin]# mv python python.backup
[root@master bin]# ln -s /app/python3/bin/python3.5 /usr/bin/python
[root@master bin]# ln -s /app/python3/bin/python3.5 /usr/bin/python3
8、更改yum、urlgrabber、Firewall脚本的python依赖,防止由于Python升级,导致yum、Firewalld不能使用。
即将这些引用Python2.7脚本的开头第一行:#!/usr/bin/python 改为:#!/usr/bin/python2。
具体文件如下:
1、/usr/libexec/urlgrabber-ext-down
2、/usr/bin/yum*
3、/usr/bin/firewall*
4、/usr/sbin/firewalld
5、/usr/sbinyum*
四、查看Python版本:
Python 3.5.2 (default, Jan 28 2018, 21:48:14)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>