❝ python的两大版本python2和python3,做数据分析,常用的是python3,用python3开发的程序部署到服务器上时,要求服务器上的python环境也是python3。现在Linux服务器一般自带python2。本文介绍Linux环境下安装python3以及一些需要注意点。

1 依赖安装

gcc是一个用于linux系统下编程的编译器,由于python3需要编译安装,因此,需要首先安装gcc。先查看一下系统中,是否安装了gcc。

gcc --versions

发现没有安装,则需要安装。参数-y的作用是在安装过程中自动确认。

yum -y install gcc

编译安装python3过程中,根据系统本身的依赖,可能出现的不同的报错信息。提前按照好依赖包。

yum -y install zlib*
yum -y install libffi-devel
yum -y install openssl-devel

2 python3 下载

在下载前可以检查一下服务器中python的版本,一般linux服务器会自带python2。以下所有操作都是在root账户中进行。

python --version

当服务器网络较好时,可以直接使用以下命令下载python3的压缩包。下载的版本为python3.7,下载到服务器主目录中(位置可自定义)。

cd~
wgethttps://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

当服务器网络不好时,命令下载花费时间较长,可以考虑在其他机器上先下好压缩包,然后通过工具(MobaXterm,Xshell,...)上传到服务器。

3 python3编译安装

解压下载的python3压缩包。

tar -zxvf Python-3.7.0.tgz

解压后主目录下会多出一个Python-3.7.0文件夹。

新建一个python3的安装目录(位置可自定义)。

mkdir /usr/lib/python3.7

进入Python-3.7.0目录下,「指定安装目录,设置启用ssl功能」。

cdPython-3.7.0
./configure --prefix=/usr/lib/python3.7 --with-ssl

编译安装。

make && make install

4 创建软连接

上述步骤完成后,其实python3已经安装完毕,但是为了方便使用,一般会创建python3和pip3的软连接。创建后可直接在终端通过python命令进入python和pip3命令安装python包。

创建python3和pip3软连接:

ln -s /usr/lib/python3.7/bin/python3.7 /usr/bin/python3
ln -s /usr/lib/python3.7/bin/pip3.7 /usr/bin/pip3
ln -s /usr/bin/pip3 /usr/bin/pip

系统默认的python软连接指向的是python2,如果我们需要更方便使用,可以删除原有的python软连接,并建立新的python软连接指向python3。

rm-f /usr/bin/python
ln -s /usr/bin/python3 /usr/bin/python

查看最新的有python的软连接。

ll /usr/bin/ |grep python

查看python版本。显示为python 3.7.0。

python --version

5 修改yum配置

Linux centos7自带的python版本是2.7,yum使用python2.7作为命令解释器。安装python3后,软连接/usr/bin/python指向的版本是python3,不修改yum的配置,会导致yum使用报错,无法安装包等。

「报错信息1:」❝ File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax

「报错信息2:」❝ Downloading packages: File "/usr/libexec/urlgrabber-ext-down", line 28 except OSError, e: ^ SyntaxError: invalid syntax

「解决办法:」

修改yum配置文件,下面两个文件都要修改。

vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down

按i进入编辑模式,在第一行#!/usr/bin/python把修改为#!/usr/bin/python2.7,

按ESC退出编辑模式,:wq退出保存。