有时我会看到#!/usr/bin/python2
和#!/usr/bin/python3
而不是#!/usr/bin/python
。我得到了这种方法的吸引力,你可以明确地说明你是否需要Python 2或3而不做一些奇怪的版本检查。
这些是python2
和python3
标准吗?他们会到处工作吗?或者它有风险吗?
我刚刚确认我有python2
和python3
,但我在Cygwin上,所以我不认为这意味着它对许多其他人来说必然是相同的。
注意:对于考虑#!/usr/bin/python
是否有号码的人,更重要的是要记住,python
甚至不在/usr/bin
(例如FreeBSD和OSX),如果你想要最大的可移植性,请使用#!/usr/bin/env python
。
然后祈祷env
位于/usr/bin
。
答案 0 :(得分:1)
作为单一参考点 - 我的系统上没有python2
可执行文件:
$ python2
-bash: python2: command not found
所以我绝对不会认为这个是便携式的。显然,我仍然可以通过明确选择可执行文件来运行脚本:
python2.7 your_script.py
或者通过将python2
符号链接到python2.7
,但关键是它对我来说不会开箱即用(我想其他一些用户也是如此)。