.. _python_in_rhel8:
===========================
在RHEL/CentOS 8中使用Python
===========================
当前Python 2已经中止支持,主流发行版已经转向默认使用Python 3。在Red Hat Enterprise Linux 8中,默认使用 Python 3.6,但是依然提供Python 2以便兼容。
Python 3
==========
- 安装Python::
dnf install python3
- 运行python::
python3
在RHEL 8中,默认使用Python 3.6,并且系统完全支持这个版本,但是有可能没有默认安装,所以需要使用上述命令安装。注意,所有相关Python 3的软件包都使用 ``python3-xxx`` 方式提供。
Python 2
===========
为了兼容旧版本软件,在安装了Python 3同时也可以安装Python 2,并且运行时使用命令 ``python2`` ::
dnf install python2
python2
"python"命令
==============
系统默认没有提供 ``python`` 命令,需要明确指定使用的python版本,例如 ``python3`` 或者 ``python2`` 。要使用 ``python`` 命令来指代特定版本的python,可以使用 ``alternative`` 机制,激活系统全局的统一版本::
alternative --set python /usr/bin/python3
此时就可以使用 ``python`` 命令来使用 ``python3`` 。
但是建议使用明确的 ``python3`` 或者 ``python2`` 避免脚本或者命令无法兼容运行。
virtualenv 和 venv
====================
请注意,即使使用了 ``alternative`` 来设置 ``python`` 的引用,但是却不能使用 ``dnf install python-XXX`` 或者 ``pip`` 命令,这是因为必须在这种情况下显式说明版本。所以,安装pip或者virtualenv/venv,请使用以下方法::
python3 -m pip
python3 -m venv
python2 -m virtualenv
参考
=====
- `Python in RHEL 8 `_
- `Install Python 3 / Python 2.7 on CentOS 8 / RHEL 8 `_