python - 在 Unix 中为 Python 安装命名以及 shebang 的良好使用

标签 python installation shebang

我对为 Python 脚本编写 shebang 的标准方法感到困惑。

我有一个普通的“python”链接,根据系统的不同,它可能是 Python 2.x 或 Python 3.x,这是一个问题,因为两者不兼容。

作为一个解决方案,我在我的 shebang 中编写了版本,并且有类似的东西:

#!/bin/env python3.2

但这似乎很愚蠢,因为它会阻止我的脚本在任何其他 3.x 版本中运行

我注意到一些 系统已将 python2 链接到最新版本。这很有帮助,因为这样我就可以编写简单的脚本,例如“Hello World”,它不会随着每个版本的发布而中断。

我已经安装了 Python 2.6、2.7、3.1 和 3.2 从可移植性的角度来看,仅使用“python”作为 shebang 是没有意义的。使用确切的版本会妨碍可维护性。我有一个 python2 链接,但没有 python3

是否有任何标准和/或 PEP 指定应如何安装 Python?还有一个说我部署到的必须有一个 python3 和/或 python2 链接到最新版本?

最佳答案

几乎所有适用于 Python 2.x 的东西都适用于 Python 2.7,无需更改。 Python 3.x 和 Python 3.2 也是如此。不应该更改的任何内容(不,应该更改)。

那么就是普通的命名方案了:

python 2.x

#!/usr/bin/env python

python 3.x

#!/usr/bin/env python3

关于python - 在 Unix 中为 Python 安装命名以及 shebang 的良好使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11595784/

相关文章:

linux - perl shebang : `Too late for "-Mstrict"`

python - 在Python中检查值是否存在于一系列开始和结束位置中的最有效方法是什么?

python - 在setup.py或pip需求文件中,如何控制安装包依赖的顺序?

windows - 创建双 Mac/Win 自动运行 CD

ruby 脚本 : shebang with absolute path to ruby not working

python - Windows 上这 4 种不同类型的 Python shebangs 有什么区别?

python - 创建新的 Django 项目时出现 Pydev 错误

python - 将鼠标悬停在 Folium 的弹出窗口中

python - Deque 在 Python 中是如何工作的

ruby-on-rails - 使用 Heroku binary 而不是 gem