我有一个只应该用Python 3运行的脚本.我想给出一个很好的错误消息,如果用户试图用Python 2.x运行它,不应该用python2运行这个脚本
我该怎么做呢?当我尝试检查Python版本时,它仍会抛出错误,因为Python在执行我的if条件之前解析整个文件.
如果可能的话,我宁愿不再制作另一个剧本.
pok*_*oke 11
您可以编写一个包装器启动脚本,在该脚本中只导入实际脚本并捕获语法错误:
try:
import real_module
except SyntaxError:
print('You need to run this with Python 3')
Run Code Online (Sandbox Code Playgroud)
然后,当real_module.py使用Python 3语法时,如果与Python 3一起使用会抛出异常,则会打印出上面的消息.
当然,不仅可以导入脚本,还可以先检查版本,然后在版本为3时导入它.这样做的好处是,即使使用Python运行它,您仍会看到实际脚本的语法错误3:
import sys
if sys.version_info[0] < 3:
print('You need to run this with Python 3')
sys.exit(1)
import real_module
Run Code Online (Sandbox Code Playgroud)