为什么 python 2.4 一直忽略我的退出函数?
Why does python 2.4 keep ignoring my exit function?
我写了一个只适用于 2.6 或 2.7 版本 运行 的脚本。我已经进行了安全检查,以查看是否安装了另一个版本,并检查是否有可用的兼容版本。这是我的代码片段;
# !/usr/bin/python
import sys, os, re
from sys import exit
if sys.version[0:3] in ['2.6', '2.7']:
import subprocess, datetime, os.path, json, urllib2, socket
def python_version():
version = sys.version[0:3]
while version not in ['2.6', '2.7']:
print '\n\nYou\'re using an incompatible version of Python (%s)' % version
python_installed_version = []
for files in os.listdir("/usr/bin/"): # check to see version of python already on the box
python_version = re.search("(python2(.+?)[6-7]$)", files)
if python_version:
python_installed_version.append(python_version.group())
if python_installed_version:
print 'Fortunately there are compatible version(s) installed. Try the following command(s): \n\n',
for version in python_installed_version:
print 'curl http://script.py | %s\n' % version
sys.exit()
python_version()
with p.stdout:
print 'hello'
当我在 python 2.4 中 运行 以上时,我得到这个错误;
File "<stdin>", line 46
with p.stdout:
^
SyntaxError: invalid syntax
我不明白为什么脚本在检测到您正在使用 python 2.4 和 sys.exit()
时不立即退出,而是继续阅读脚本并给出上面读取 with p.stout:
的错误。
我已经删除了 with p.stdout:
行,它可以正常工作,它不会读取 print 'hello'
。我不知道为什么 with p.stdout:
导致脚本中断。这在 2.6 和 2.7 上工作得很好。
关于为什么 python 2.4 仍会读取 with p.stdout:
行的任何想法?谢谢。
Python 2.4 还没有 with
语法支持,所以脚本在解析阶段失败,而不是在运行时。你可以通过像这样的包装器来解决这个问题:
if version_check_ok():
import actual_app
actual_app.run()
else:
...
这样,使用新语法的新文件将不会 imported/parsed,直到您知道这样做是安全的。但是,您不能将导入移动到版本检查之上。
我写了一个只适用于 2.6 或 2.7 版本 运行 的脚本。我已经进行了安全检查,以查看是否安装了另一个版本,并检查是否有可用的兼容版本。这是我的代码片段;
# !/usr/bin/python
import sys, os, re
from sys import exit
if sys.version[0:3] in ['2.6', '2.7']:
import subprocess, datetime, os.path, json, urllib2, socket
def python_version():
version = sys.version[0:3]
while version not in ['2.6', '2.7']:
print '\n\nYou\'re using an incompatible version of Python (%s)' % version
python_installed_version = []
for files in os.listdir("/usr/bin/"): # check to see version of python already on the box
python_version = re.search("(python2(.+?)[6-7]$)", files)
if python_version:
python_installed_version.append(python_version.group())
if python_installed_version:
print 'Fortunately there are compatible version(s) installed. Try the following command(s): \n\n',
for version in python_installed_version:
print 'curl http://script.py | %s\n' % version
sys.exit()
python_version()
with p.stdout:
print 'hello'
当我在 python 2.4 中 运行 以上时,我得到这个错误;
File "<stdin>", line 46
with p.stdout:
^
SyntaxError: invalid syntax
我不明白为什么脚本在检测到您正在使用 python 2.4 和 sys.exit()
时不立即退出,而是继续阅读脚本并给出上面读取 with p.stout:
的错误。
我已经删除了 with p.stdout:
行,它可以正常工作,它不会读取 print 'hello'
。我不知道为什么 with p.stdout:
导致脚本中断。这在 2.6 和 2.7 上工作得很好。
关于为什么 python 2.4 仍会读取 with p.stdout:
行的任何想法?谢谢。
Python 2.4 还没有 with
语法支持,所以脚本在解析阶段失败,而不是在运行时。你可以通过像这样的包装器来解决这个问题:
if version_check_ok():
import actual_app
actual_app.run()
else:
...
这样,使用新语法的新文件将不会 imported/parsed,直到您知道这样做是安全的。但是,您不能将导入移动到版本检查之上。