什么在shebang python26或python2.6中引用

Pet*_*mit 2 python shebang

对于Python脚本,我需要一个特定的Python版本.现在我的Python 2.6安装包含python26和python2.6

我应该把哪一个放在shebang?

选项1:

#!/usr/bin/env python2.6
Run Code Online (Sandbox Code Playgroud)

选项2:

#!/usr/bin/env python26
Run Code Online (Sandbox Code Playgroud)

编辑:是的,有理由不使用普通的python.在我们的大学的一些环境中,python链接到python2.4,我的代码使用了相当多的2.6功能.

mgi*_*uca 8

您无法始终保证将使用shebang(甚至用户将拥有该版本).

您不应该完全限制特定版本.最好至少需要一个给定的版本(如果你的代码适用于Python 2.6,为什么它不适用于Python 2.7?我可能在几个月内没有安装Python 2.6.)

我会坚持使用/usr/bin/env pythonshebang而是动态检测版本.信不信由你,"正常"的做法是:

import sys
ver = sys.version[:3]
Run Code Online (Sandbox Code Playgroud)

这将为您提供一个3个字符的字符串,如"2.6"或"2.7".我只是检查第一个字符='2'(假设你想阻止Python 3运行你的脚本,因为它很大程度上是不兼容的)和第三个字符> ='6'.

编辑:请参阅Petr的评论 - sys.version_info[0:2]改为使用(给你一对像(2, 6)(2, 7).

  • 您应该使用sys.version_info而不是sys.version(这是一个字符串),这是一个像元组(2,6,6,'final',0)的元组.检查sys.version文档,说"不要从中提取版本信息":http://docs.python.org/library/sys.html#sys.version (2认同)