dsi*_*cha 60 python linux windows shebang
我有一些用Python编写的小实用程序脚本,我想在Windows和Linux上都可以使用.我想避免显式调用Python解释器.有没有一种简单的方法可以将shebang符号指向Windows和Linux上的正确位置?如果没有,是否有另一种方法允许在Windows和Linux上隐式调用Python解释器,而不必在操作系统之间进行转换时修改脚本?
编辑:Windows上的shebang支持是Cygwin提供的,但我想在Windows上使用本机Windows Python解释器,而不是Cygwin.
编辑#2:似乎shebang符号覆盖了Cygwin终端中的文件关联.我想我可以将Cygwin Python和symlink/usr/bin/python卸载到Windows原生Python.
Ery*_*Sun 36
阅读文档中的Python Launcher for Windows,最初在PEP 397中进行了描述.它可以让你在一个ini定义自定义认领配置(例如使用pypy),但出于可以使用虚拟shebangs诸如盒子#!/usr/bin/env python3
,或以shebangs诸如真实路径#!"C:\Python33\python.exe"
(引用需要含有空格的路径).您还可以向shebang添加命令行选项.例如,以下shebang添加了在脚本终止后进入交互模式的选项:#!/usr/bin/python3 -i
.
Python 3.3将.py(控制台)和.pyw(GUI)脚本文件类型与分别命名的启动器py.exe和pyw.exe相关联,以便为Windows上的脚本启用shebang支持.%SystemRoot%
在为所有用户安装时,新的启动程序将安装到根Windows文件夹(即).否则,您需要添加安装目录以便PATH
在shell中使用py.exe.然后在命令行可以运行py -2
,py -3
,py -2.6
,py -3.3-32
(32位),等等.当与-m
作为脚本运行模块时,启动器很方便,例如py -3 -m pip install
.
如果你只使用Python 2,还有一个可以单独安装的pylauncher版本.
Spe*_*bun 32
除非你使用cygwin,否则windows没有shebang支持.但是,当您安装python时,它会添加.py文件的文件关联.如果只在命令行中输入脚本名称,或者在Windows资源管理器中双击它,那么它将通过python运行.
我所做的是#!/usr/bin/env python
在我的剧本中包含一个shebang.这允许在Linux上支持shebang.如果你在安装了python的windows机器上运行它,那么文件关联应该在那里,它也会运行.