我当前正在运行Linux和Windows 7上的Python脚本。文件是以Execv样式执行的,我的意思是我的意思是在命令中的文件开头定义了解释器。

在Windows系统中,解释器规范是:

#!C:\Python26\python.exe

但是在Linux中,这必须是

#!/usr/bin/python

我想在两个系统中运行此脚本,而不必一次又一次地更改此行。

我已经尝试了以下内容:

#!C:\Python26\python.exe
#!/usr/bin/python

也:

#!C:\Python26\python.exe;/usr/bin/python

因此:有什么办法可以指定多个口译员?

有帮助吗?

解决方案

#!/usr/bin/env python

那会叫 env 程序以搜索您的路径以获取Python可执行文件。

如果您需要确保特定版本的Python,则可以执行EG:

#!/usr/bin/env python2.5

其他提示

根据您要做的事情,这可能有点重量,但是0插款可以运行您的程序,将为您的平台提供适当的Python解释器。在您程序的XML描述中,执行类似的操作(例如,如果您想要Python> = 2.6,<3):

<command name="run" path="myprog.py">
  <runner interface="http://repo.roscidus.com/python/python">
    <version not-before="2.6" before="3"/>
  </runner>
</command>

看: http://www.0install.net/local-feeds.html

如果用户还没有,这也将使0install下载适合的Python版本。

请注意,即使您仅针对Linux,您也可能需要执行此操作,因为使用Python 3没有单个#!在所有平台上都可以使用的行(某些平台,例如Arch,需要“ Python2”不是“ Python”,而其他平台则不需要“ Python2”,而不是提供“ Python2”,仅提供“ Python”)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top