一般linux发行版中都会默认安装了python。但是版本比较低,因此,为了使用更高的版本,就自己来装一个吧。完全不用卸载之前的老版本,因为有些程序会依赖老版本的Python,比如说yum。所以默认版本不要轻易删除,否则会有一些问题,如果需要使用最新的Python3那么我们可以编译安装源码包到独立目录,这和系统默认环境之间是没有任何影响的,python3和python2两个环境并存即可
我采用的是VM+centos7环境,具体安装使用如下步骤:
1. 更新gcc
因为gcc版本太老会造成新版本中python包无法编译成功
直接执行:yum -y install gcc
2. 下载最新的python包
到官网:https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
(1)百度输入python,找到如下界面:
(2)进入页面后点击downloads--->all release
![](/qrcode.jpg)
并点击上面的红色Linux部分,进入到如下:
再点击:
下载这个红色部分就行啦。赋值它的链接,以便Linux中进行安装
(2)在命令行输入如下进行下载:
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
下载完了以后,输入ls命令,可以发现默认下载在了当前目录下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 [root@localhost ~]# ls 2 anaconda-ks.cfg mysql80-community-release-el7-1.noarch.rpm 3 cyrus-sasl-2.1.26-fixes-3.patch original-ks.cfg 4 cyrus-sasl-2.1.26.tar.gz Python-3.7.0.tgz 5 initial-setup-ks.cfg 6 [root@localhost ~]#
(3)解压已经下载的二进制安装包
tar -xvzf Python-3.7.0.tgz
(4)进入到解压后的目录中
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 [root@localhost ~]# ls 2 anaconda-ks.cfg mysql80-community-release-el7-1.noarch.rpm 3 cyrus-sasl-2.1.26-fixes-3.patch original-ks.cfg 4 cyrus-sasl-2.1.26.tar.gz Python-3.7.0 5 initial-setup-ks.cfg Python-3.7.0.tgz 6 [root@localhost ~]# cd Python-3.7.0 7 [root@localhost Python-3.7.0]#
(5)可以配置安装目录,也可以不配置
/configure --prefix=/usr/python #不配置也可以,直接./configure命令
(6)开始编译安装
make
make install #这里可能会报错,原因是缺少依赖包
错误信息:
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1
说明了zlib没有啊,那安装一个吧:
yum -y install zlib zlib-devel
再次执行make install,结果又报错了。。。。。。。。。。。
错误信息:
No module named '_ctypes',
百度了一圈,说3.7版本需要一个新的包libffi-devel。那把它装上把:
yum install libffi-devel -y
再执行make install ,成功啦
3. 测试
安装完了以后,用python3来查看,
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 >>> 2 [root@localhost Python-3.7.0]# python3 3 Python 3.7.0 (default, Aug 3 2018, 19:47:47) 4 [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux 5 Type "help", "copyright", "credits" or "license" for more information. 6 >>> print("hello world") 7 hello world 8 >>>
执行python,调用Python2.7,系统原本默认安装;执行python3,调用了刚刚安装的3.7. 有时候可能会调用3.7不成功,弄个软连接指定调用路径就行啦。
这样,python3.7算是安装成功了。