我尝试检查当前版本是否为3,如果是,请切换到python2:
#!/usr/bin/python
import sys, os
if sys.version_info[0] != 2:
os.execl("/usr/bin/", "python2", *sys.argv)
print(sys.version_info[:])
但是这个脚本会返回错误:
Traceback (most recent call last):
File "./a.py", line 6, in <module>
os.execl("/usr/bin/", "python2", *sys.argv)
File "/usr/lib/python3.3/os.py", line 531, in execl
execv(file, args)
PermissionError: [Errno 13] Permission denied
我错过了什么?
答案 0 :(得分:2)
os.execl(“/ usr / bin /”,“python2”,* sys.argv)
/ usr / bin /是一个目录,你无法运行它。尝试:
os.execl(“/ usr / bin / python2”,“/ usr / bin / python2”,* sys.argv [1:])
答案 1 :(得分:0)
我认为你所尝试的是一个坏主意 - 这是令人惊讶的行为,而不需要,而只是使用一个明确的hashbang:
#!/usr/bin/python2
或者,最好是:
#!/usr/bin/env python2
根据PEP 394,任何unix系统都应提供python2
。