`python3` 总是与 Python 3 一起安装吗?

is `python3` always installed with Python 3?

我通常以 shebang 行开始我的所有脚本

#!/usr/bin/env python

但是我们的生产服务器默认 Python 2 python,而我们所有的新脚本和程序都是在 Python 3 下构建的。帮助防止人们意外运行使用默认的脚本 Python 2,我正在考虑从现在开始将我所有的 shebang 切换到这个;

#!/usr/bin/env python3

在我们的服务器上,python3确实指向Python3,我们的基本脚本会运行正确地指向它。但是我不清楚这是否特定于我们的安装,或者如果安装了 Python 3,python3 是否 总是 可用?

我知道这可能不会帮助 运行s $ python myscript.py 的用户,当加载默认 Python 时,但它总比没有好,并且足够清楚地让用户检查脚本的人意识到他们使用了错误的 Python 版本。尽管现在我也意识到,随着 Python 出现在 3.8 版中,Python 4 迫在眉睫……与此同时,我不确定我是否准备好在每个脚本中嵌入代码以检查 Python >= 3 是否已加载...

我相信 python 3 版本只安装 python3 如果已经安装了 python 的另一个版本,无论它是 python 2 还是python 3 版本,因为标准 python 命令将无法在新版本的 python 上正常工作。

如有错误请指正!

是的,这是一个安全的选择。

PEP 394 recommends Python 3 be available under the binary name python3 and most Linux distributions follow this recommendation. In fact, this is the only name under which Python 3 has been available in most distributions (the only outlier being Arch Linux, but even that also provides a python3 binary), and plans to make the ‘plain’ python binary also refer to Python 3 have only been made quite recently. The article ‘Revisiting PEP 394’ LWN.net 上有更多详细信息。