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
从上面可以看出我们可以安装python3,python34,python36。那么我以安装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,但是可能有点费时和麻烦。
首先在官网找到你要下载的版本的链接进行下载,这里我以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
注意
在开始前,请先确认您的机器上有gcc和make以及一些相关的依赖,如果没有的话可以执行下面的命令进行安装:
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
其他版本的源码安装也是一样的,这里就不赘述了。