Centos 安装 Python3

Centos 的官方源默认是没有python3,所以不能直接yum安装。

下面介绍几个常用的方法在Centos下安装Python3。

一、epel 源安装

首先安装epel源:

yum install epel-release

在有epel源的情况下查询yum的python3状况:

yum list | grep python3

下面为我机器上的查询实例:

[root@b2f8114e2c34 build]# yum list | grep python3
abrt-addon-python3.noarch                2.1.11-50.el7                   epel   
boost-python34.x86_64                    1.53.0-28.el7                   epel   
boost-python34-devel.x86_64              1.53.0-28.el7                   epel   
boost-python34-static.x86_64             1.53.0-28.el7                   epel   
boost169-mpich-python3.x86_64            1.69.0-1.el7                    epel   
boost169-mpich-python3-devel.x86_64      1.69.0-1.el7                    epel   
boost169-openmpi-python3.x86_64          1.69.0-1.el7                    epel   
boost169-openmpi-python3-devel.x86_64    1.69.0-1.el7                    epel   
boost169-python3.x86_64                  1.69.0-1.el7                    epel   
boost169-python3-devel.x86_64            1.69.0-1.el7                    epel   
gfal2-python3.x86_64                     1.9.5-2.el7                     epel   
libpeas-loader-python36.x86_64           1.22.0-2.el7                    epel   
python3-camel.noarch                     0.1.2-2.el7                     epel   
python3-cffi-doc.noarch                  1.9.1-3.el7                     epel   
python3-cups-doc.x86_64                  1.9.74-4.el7                    epel   
python3-docutils-doc.noarch              0.12-0.10.20140510svn7747.el7   epel   
python3-jinja2-doc.noarch                2.8-4.el7                       epel   
python3-opentrep.x86_64                  0.07.1-2.el7                    epel   
python3-pygments-doc.noarch              2.2.0-3.el7                     epel   
python3-pyudev.noarch                    0.21.0-2.el7                    epel   
python3-rpdb.noarch                      0.1.5-3.el7.1                   epel   
python3-rpm-macros.noarch                3-23.el7                        epel   
python3-sphinx.noarch                    1.2.3-5.el7                     epel   
python3-sphinx-common.noarch             1.2.3-5.el7                     epel   
python3-sphinx-doc.noarch                1.2.3-5.el7                     epel   
python3-sphinx-latex.noarch              1.2.3-5.el7                     epel   
python3-sqlalchemy-doc.noarch            1.1.3-3.el7                     epel   
python3-tornado-doc.x86_64               4.4.2-2.el7                     epel   
python3-urjtag.x86_64                    2017.10-3.el7                   epel   
python3-virtualenv-doc.noarch            15.1.0-4.el7                    epel   
python34.x86_64                          3.4.9-3.el7                     epel   
python34-Cython.x86_64                   0.28.4-3.el7                    epel   
python34-PyYAML.x86_64                   3.11-4.el7                      epel   
python34-apsw.x86_64                     3.7.17.r1-3.el7                 epel   
python34-asn1crypto.noarch               0.24.0-7.el7                    epel   
python34-backports-ssl_match_hostname.noarch
python34-blosc.x86_64                    1.2.8-5.el7                     epel   
python34-bsddb3.x86_64                   6.2.6-4.el7                     epel   
python34-chardet.noarch                  2.3.0-5.el7                     epel   
python34-click.noarch                    6.7-8.el7                       epel   
python34-coverage.x86_64                 4.0.3-5.el7                     epel   
python34-cups.x86_64                     1.9.74-4.el7                    epel   
python34-dateutil.noarch                 1:2.4.2-5.el7                   epel   
python34-debug.x86_64                    3.4.9-3.el7                     epel   
python34-devel.x86_64                    3.4.9-3.el7                     epel   
python34-docutils.noarch                 0.12-0.10.20140510svn7747.el7   epel   
python34-empy.noarch                     3.3.3-2.el7                     epel   
python34-fedfind.noarch                  4.2.0-1.el7                     epel   
python34-idna.noarch                     2.7-2.el7                       epel   
python34-jinja2.noarch                   2.8-4.el7                       epel   
python34-jsmva.noarch                    6.16.00-4.el7                   epel   
python34-jupyroot.x86_64                 6.16.00-4.el7                   epel   
python34-lark-parser.noarch              0.6.4-6.el7                     epel   
python34-leveldb.x86_64                  0.194-2.el7                     epel   
python34-lhapdf.x86_64                   6.2.1-6.el7                     epel   
python34-libs.x86_64                     3.4.9-3.el7                     epel   
python34-markdown.noarch                 2.4.1-4.el7                     epel   
python34-markupsafe.x86_64               0.23-3.el7                      epel   
python34-mock.noarch                     2.0.0-2.el7                     epel   
python34-nose.noarch                     1.3.7-4.el7                     epel   
python34-numpy.x86_64                    1.10.4-7.el7                    epel   
python34-numpy-f2py.x86_64               1.10.4-7.el7                    epel   
python34-parso.noarch                    0.3.1-2.el7                     epel   
python34-pbr.noarch                      4.2.0-3.el7                     epel   
python34-pdir2.noarch                    0.3.0-6.el7                     epel   
python34-pip.noarch                      8.1.2-8.el7                     epel   
python34-process-tests.noarch            1.0.0-11.el7                    epel   
python34-psutil.x86_64                   2.2.1-5.el7                     epel   
python34-psycopg2.x86_64                 2.7.7-1.el7                     epel   
python34-psycopg2-tests.x86_64           2.7.7-1.el7                     epel   
python34-py.noarch                       1.4.32-2.el7                    epel   
python34-py4j.noarch                     0.10.7-4.el7                    epel   
python34-pycryptodomex.x86_64            3.7.3-2.el7                     epel   
python34-pygments.noarch                 2.2.0-3.el7                     epel   
python34-pygraphviz.x86_64               1.3-2.rc2.el7.2                 epel   
python34-pysocks.noarch                  1.6.8-6.el7                     epel   
python34-pytest.noarch                   2.9.2-3.el7                     epel   
python34-pytest-cov.noarch               2.5.1-3.el7                     epel   
python34-pythia8.x86_64                  8.2.35-6.el7                    epel   
python34-pyvirtualize.noarch             0.9-5.20181003git57d2307.el7    epel   
python34-pyvmomi.noarch                  6.7.1-3.el7                     epel   
python34-requests.noarch                 2.12.5-3.el7                    epel   
python34-root.x86_64                     6.16.00-4.el7                   epel   
python34-setuptools.noarch               39.2.0-3.el7                    epel   
python34-setuptools_scm.noarch           1.17.0-3.el7                    epel   
python34-six.noarch                      1.11.0-3.el7                    epel   
python34-slack_cleaner.noarch            0.5.0-2.el7                     epel   
python34-slacker.noarch                  0.12.0-4.el7                    epel   
python34-snowballstemmer.noarch          1.2.1-9.el7                     epel   
python34-sphinx.noarch                   1.2.3-5.el7                     epel   
python34-sphinx-latex.noarch             1.2.3-5.el7                     epel   
python34-sqlalchemy.x86_64               1.1.3-3.el7                     epel   
python34-tabulate.noarch                 0.8.3-6.el7                     epel   
python34-test.x86_64                     3.4.9-3.el7                     epel   
python34-tkinter.x86_64                  3.4.9-3.el7                     epel   
python34-tools.x86_64                    3.4.9-3.el7                     epel   
python34-urllib3.noarch                  1.19.1-5.el7                    epel   
python34-uwsgidecorators.x86_64          2.0.17.1-2.el7                  epel   
python34-virtualenv.noarch               15.1.0-4.el7                    epel   
python34-whoosh.noarch                   2.7.4-5.el7                     epel   
python34-xrootd.x86_64                   1:4.9.0-2.el7                   epel   
python36.x86_64                          3.6.6-5.el7                     epel   
python36-Cython.x86_64                   0.28.4-3.el7                    epel   
python36-PyMySQL.noarch                  0.9.2-2.el7                     epel   
python36-PyYAML.x86_64                   3.11-4.el7                      epel   
python36-aiosmtpd.noarch                 1.0-3.el7                       epel   
python36-arrow.noarch                    0.8.0-4.el7                     epel   
python36-asn1crypto.noarch               0.24.0-7.el7                    epel   
python36-astroid.noarch                  1.4.9-3.el7                     epel   
python36-atpublic.x86_64                 0.5-2.el7                       epel   
python36-attrs.noarch                    17.4.0-4.el7                    epel   
python36-autowrap.noarch                 0.19.0-2.el7                    epel   
python36-backports_abc.noarch            0.5-2.el7                       epel   
python36-bitarray.x86_64                 0.8.3-2.el7                     epel   
python36-blessed.noarch                  1.14.1-3.el7                    epel   
python36-blosc.x86_64                    1.2.8-5.el7                     epel   
python36-bottle.noarch                   0.12.13-2.el7                   epel   
python36-breathe.noarch                  4.2.0-4.el7                     epel   

从上面可以看出我们可以安装python3python34python36。那么我以安装python36为例子,下面是安装python36和其对应pip的脚本:

yum install python36 python36-pip

安装好之后就可以直接使用,运行python3或者python36或者python3.6命令即可,库安装则使用的是pip3或者pip3.6命令。

如下面这个样子:

[root@b2f8114e2c34 build]# python
python      python2.7   python3.6   python36    
python2     python3     python3.6m  
[root@b2f8114e2c34 build]# pip3  
pip3    pip3.6  
[root@b2f8114e2c34 build]#

可以看出安装的Python3并不会与原生的Python2有冲突,名字都是分开来的,安装python34或者其他版本的也是如有雷同

二、源码安装

源码安装可以去官网下载最新的Python,但是可能有点费时和麻烦。

Python官网https://www.python.org/

首先在官网找到你要下载的版本的链接进行下载,这里我以python3.7.3为例:

wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

然后解压:

tar -zxvf Python-3.7.3.tgz

进入目录创建build目录用于编译(如果您喜欢在原本的目录编译也是没问题的,但是这并不是一个好的习惯)。

cd Python-3.7.3
mkdir build

注意

在开始前,请先确认您的机器上有gccmake以及一些相关的依赖,如果没有的话可以执行下面的命令进行安装:

yum install gcc make libffi-devel zlib-devel

配置:

../configure

这里我就不加参数了,用默认的安装路径即可,如果您喜欢自定义的话,也可以自行进行参数增加。

编译:

make

这条命令需要一定的时间,具体的时间依据您服务器的性能而定。

安装:

make install

执行完这条命令之后python3.7.3也就安装好了,源码安装时会默认连同pip3一起安装,所以我们不需要在手动去下载pip3。

上面的这几条命令您也可以一次性运行:

../configure && make && make install

完成实例

[root@b2f8114e2c34 build]# python 
python             python3            python3.7-config   
python2            python3-config     python3.7m         
python2.7          python3.7          python3.7m-config  
[root@b2f8114e2c34 build]# pip3  
pip3    pip3.7  
[root@b2f8114e2c34 build]# pip3
pip3    pip3.7  

其他版本的源码安装也是一样的,这里就不赘述了。