我应该放#! (shebang) 在 Python 脚本中,它应该采用什么形式?

新手上路,请多包涵

我应该把 shebang 放在我的 Python 脚本中吗?以什么形式?

 #!/usr/bin/env python

或者

#!/usr/local/bin/python

这些是否同样便携?哪种形式使用最多?

注意: tornado 项目使用 shebang。另一方面, Django 项目没有。

原文由 treecoder 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 874
2 个回答

任何脚本中的 shebang 行决定了脚本能够像独立的可执行文件一样执行,而无需预先在终端中或在文件管理器中双击它(如果配置正确)键入 python 。它不是必需的,但通常会放在那里,这样当有人看到在编辑器中打开的文件时,他们会立即知道他们在看什么。但是,您使用哪条 shebang 行 重要。

Python 3 脚本(默认为版本 3.latest)的 正确 用法是:

 #!/usr/bin/env python3

Python 2 脚本(默认为版本 2.latest)的 正确 用法是:

 #!/usr/bin/env python2

不应 使用 以下内容(除非您正在编写与 Python 2.x 和 3.x 兼容的代码的极少数情况):

 #!/usr/bin/env python

PEP 394 中给出这些建议的原因是 python 在不同的系统上可以参考 python2python3

另外,不要使用:

 #!/usr/local/bin/python

“在这些情况下,python 可能安装在 /usr/bin/python 或 /bin/python 中,上面的 #! 将失败。”

”#!/usr/bin/env python” 与 “#!/usr/local/bin/python”

原文由 GlassGhost 发布,翻译遵循 CC BY-SA 4.0 许可协议

这真的只是一个品味问题。添加 shebang 意味着人们可以根据需要直接调用脚本(假设它被标记为可执行);省略它只意味着 python 必须手动调用。

运行程序的最终结果不会受到任何影响;这只是手段的选择。

原文由 Amber 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题