Centos 7安装python3
安装依赖包
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
2.7版本备份
默认Centos7中是有python安装的,但是是2.7版本,我们需要安装python3。我们去查找一下默认的python2.7安装目录。
[root@VM_0_14_centos ~]# cd /usr/bin/
[root@VM_0_14_centos bin]# ls python*
python python2 python2.7
[root@VM_0_14_centos bin]#
三个显示结果中最后一个是python2.7,实际上这几个文件之间是有依赖关系的。在ls 后面加个 -al参数,如下:
[root@VM_0_14_centos bin]# ls -al python*
lrwxrwxrwx. 1 root root 7 Aug 8 11:10 python -> python2
lrwxrwxrwx. 1 root root 9 Aug 8 11:10 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Apr 11 2018 python2.7
[root@VM_0_14_centos bin]#
依赖关系很明显就可以看到。我们要安装版本3,首先要把刚才显示的三个python文件中的第一个python给备份一下(不保留源文件,仅保留备份文件就可以)
使用如下命令:
[root@VM_0_14_centos bin]# mv python python.bak
python文件变成了python.bak文件,bak文件就放这里,再也不用管它了。避免以后麻烦,就留在这里不用删除。系统准备好了,接下来,我们要去下载了。
下载,编译,安装
python版本下载地址 https://www.python.org/ftp/python/ ,我们选择3.6.3进行下载
下载地址:https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
链接准备好了,我们在Centos 7上创建一个目录吧。一般选择的是/usr/local里面的,如下命令
[root@VM_0_14_centos ~]# mkdir /usr/local/python3
目录创建好了,我们就cd切换进去就好了。
[root@VM_0_14_centos ~]# mkdir /usr/local/python3
[root@VM_0_14_centos ~]# cd /usr/local/python3/
[root@VM_0_14_centos python3]# ll
total 0
把安装源码下载到这个目录下就OK,命令如下:
[root@VM_0_14_centos python3]# wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
--2019-01-11 10:08:49-- https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
Resolving www.python.org (www.python.org)... 151.101.40.223, 2a04:4e42:11::223
Connecting to www.python.org (www.python.org)|151.101.40.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22673115 (22M) [application/octet-stream]
Saving to: ‘Python-3.6.3.tgz’
100%[========================================================================================================================================================================>] 22,673,115 2.26MB/s in 9.3s
2019-01-11 10:08:59 (2.33 MB/s) - ‘Python-3.6.3.tgz’ saved [22673115/22673115]
等待下载完成之后会在当前目录下出现一个tgz包,命令解压这个包到当前目录就可以:
[root@VM_0_14_centos python3]# tar -xvf Python-3.6.3.tgz
解压完成后,查看目录下文件
[root@VM_0_14_centos python3]# ll
total 22148
drwxr-xr-x 16 501 501 4096 Oct 3 2017 Python-3.6.3
-rw-r--r-- 1 root root 22673115 Oct 3 2017 Python-3.6.3.tgz
就要开始安装了,因为下载的包是未编译的,我们需要编译一下。
进入文件目录:
[root@VM_0_14_centos python3]# cd Python-3.6.3/
[root@VM_0_14_centos Python-3.6.3]#
检查依赖,兼容,预编译, 指定安装目录
./configure --prefix=/usr/local/python3Dir
稍微解释上面这句命令,这句话的大致目的就是把python的安装目录指定一下,这样的话,里面的一些bin目录、lib目录就都会存放在这个目录下面。如果不指定这个安装目录的话,最后python的安装文件将分散到linux的默认目录,不在一块。我们指定安装目录,以后卸载的话直接删除目录就可以干净卸载了。
现在我们当前目录还是在/usr/local/python3/Python-3.6.3,执行如下命令:
[root@VM_0_14_centos Python-3.6.3]# make
编译完毕进行安装
[root@VM_0_14_centos Python-3.6.3]# make install
安装完成,切换到/usr/local/python3Dir目录下去查看
[root@VM_0_14_centos Python-3.6.3]# cd /usr/local/python3Dir/
[root@VM_0_14_centos python3Dir]# ll
total 16
drwxr-xr-x 2 root root 4096 Jan 11 10:38 bin
drwxr-xr-x 3 root root 4096 Jan 11 10:38 include
drwxr-xr-x 4 root root 4096 Jan 11 10:38 lib
drwxr-xr-x 3 root root 4096 Jan 11 10:38 share
创建软链接
创建python3软链接
[root@VM_0_14_centos python3Dir]# ln -s /usr/local/python3Dir/bin/python3 /usr/bin/python
创建pip3软链接
[root@VM_0_14_centos python3Dir]# ln -s /usr/local/python3Dir/bin/pip3 /usr/bin/pip3
修复yum
centos的yum命令是需要python支持,重新安装后的python已更新成3.6.3版本,我们需要重新将yum指向2.7版本
使用vi 打开yum
[root@VM_0_14_centos python3Dir]# vi /usr/bin/yum
把文件开头第一行的
#!/usr/bin/python改成#!/usr/bin/python2.7 这样就可以了。
然后,下面保存退出。注意步骤。
首先按下ESC,然后 输入: 这个符号(需要shift组合键的)。然后输入wq
然后回车就可以保存退出,回到终端界面了
补充:这个文件也要修改
vim /usr/libexec/urlgrabber-ext-down
将/usr/bin/python改为/usr/bin/python2.7。
vim /usr/bin/firewall-cmd,
将#!/usr/bin/python -Es 改为 #!/usr/bin/python2.7 -Es
vim /usr/sbin/firewalld,
将#!/usr/bin/python -Es 改为 #!/usr/bin/python2.7 -Es (这一步是针对于防火墙报错,进行的修改)
测试使用
查看一下链接情况:
[root@VM_0_14_centos python3Dir]# cd /usr/bin/
[root@VM_0_14_centos bin]# ll -a python*
lrwxrwxrwx 1 root root 33 Jan 11 10:44 python -> /usr/local/python3Dir/bin/python3
lrwxrwxrwx. 1 root root 9 Aug 8 11:10 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Apr 11 2018 python2.7
lrwxrwxrwx. 1 root root 7 Aug 8 11:10 python.bak -> python2
[root@VM_0_14_centos bin]#
然后查看一下当前的python版本
[root@VM_0_14_centos bin]# python -V
Python 3.6.3
然后来个hello world测试一下:
先输入python进入,然后写代码:
[root@VM_0_14_centos bin]# python
Python 3.6.3 (default, Jan 11 2019, 10:34:40)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello World')
Hello World
>>>
安装成功!!!
django安装
[root@localhost python3Dir]# pip3 install django==2.1.8