python - Shebang Notation : Python Scripts on Windows and Linux?

标签 python windows linux shebang

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

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

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

最佳答案

阅读 Python Launcher for Windows在文档中,最初在 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。然后从命令行您可以通过 py -2py -3py -2.6py -3.3- 运行 Python 32(32 位)等等。当与 -m 结合使用时,启动器很方便,可以使用特定版本的解释器将模块作为脚本运行,例如py -3 -m pip install


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

关于python - Shebang Notation : Python Scripts on Windows and Linux?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7574453/

相关文章:

python - Django Admin 将我的外键显示为中间模型作为文本输入

c++ - 来自 32 位进程的 64 位注册表项的 SetNamedSecurityInfo

Java 无法识别的选项 : -xvf

c - 如何在 GCC 中编译 C 程序以在 WinDbg 中启用调试?

c - 为什么 gdb 在从函数返回时停在与 "i b"显示不同的行?

python - 了解给定 python 代码中的 lambda 用法

python - 通过匹配整数的第 n 位数字来返回 Pandas 数据帧中的行?

jquery - 从 GAE Python 中的 AJAX 调用获取响应时出现问题

linux - 如何在 Ubuntu 上使用 .NET 核心应用程序获得总 CPU % 和 Memory% 使用率

linux - 在 linux-redhat 上安装旧版本的 gcc