Shebang Notation:Windows 和 Linux 上的 Python 脚本?

新手上路,请多包涵

我有一些用 Python 编写的小型实用程序脚本,我希望它们可以在 Windows 和 Linux 上使用。我想避免显式调用 Python 解释器。有没有一种简单的方法可以将 shebang 表示法指向 Windows 和 Linux 上的正确位置?如果没有,是否有另一种方法允许在 Windows 和 Linux 上隐式调用 Python 解释器,而无需在操作系统之间传输时修改脚本?

编辑:Cygwin 提供了 Windows 上的 shebang 支持,但我想在 Windows 上使用本机 Windows Python 解释器,而不是 Cygwin 解释器。

编辑#2:shebang 符号似乎覆盖了 Cygwin 终端中的文件关联。我想我可以卸载 Cygwin Python 并将 /usr/bin/python 符号链接到 Windows-native Python。

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

阅读 818
1 个回答

在文档中阅读 适用于 Windows 的 Python Launcher, 最初在 PEP 397 中进行了描述。它允许您在“py.ini”中定义自定义 shebang 配置(例如使用 pypy),并且开箱即用,您可以使用虚拟 shebangs,例如 #!/usr/bin/env python3 或带有真实路径的 shebangs,例如 #!"C:\Python33\python.exe" 。 (包含空格的路径需要引号。)您还可以将命令行选项添加到 shebang。例如,下面的shebang添加了脚本终止后进入交互模式的选项: #!/usr/bin/python3 -i

安装程序将 .py(控制台)和 .pyw(GUI)脚本文件类型与分别命名的启动器 py.exe 和 pyw.exe 相关联,以便在 Windows 中启用对脚本的 shebang 支持。对于所有用户安装,启动器安装到 Windows 文件夹(即 %SystemRoot% )。对于每用户安装,您可能需要手动将安装目录添加到 PATH 以便在 shell (*) 中使用 py.exe。 Then from the command line you can run Python via py -2 , py -3 , py -2.6 , py -3.3-32 (32-bit), and so on .启动器与 -m 结合使用时非常方便,可以使用特定版本的解释器将模块作为脚本运行,例如 py -3 -m pip install


(*) 3.5+ 中的新安装程序默认为“%LocalAppData%\Programs\Python\Launcher”,用于每个用户安装启动器,而不是将其安装在“python.exe”旁边,它会自动将此目录添加到 PATH

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

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