如果从错误的解释器调用python脚本,如何快速使其失败?

2024-10-04 11:28:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一个离开我老板的人那里继承了一些Python脚本。有些是从Jython那里逃出来的,有些不是。在

我想把它们添加到svn中,但是在修改之前,我想修改这些文件,这样如果从python运行“requiresjython”文件,用户会收到一条类似“please run with Jython”的消息,程序就会退出。在

(警告:我不太熟悉Python/Jython。)

我希望最简单的方法是创建一个文件require-jython.py,其内容如下:

if runtime.name !=  'jython'
  print "Please run with Jython"
  exit(1) 

然后“包括/要求”?这个文件(再说一遍,我不是专家。在这里忍受我)

谁能给我讲讲步骤吗?在


Tags: 文件方法run用户程序脚本消息警告
1条回答
网友
1楼 · 发布于 2024-10-04 11:28:53

我看到的是尝试导入一个特定版本或实现的模块,如果该模块不存在,则引发ImportError。在

假设Jython(而不是Python)有一个名为special的模块,然后添加:

# at the top of your module:
try:
   import special
except ImportError:
   raise ImportError("this script is meant to be used with Jython")
else:
   raise

请注意,您使ImportError异常更加明确,而不是简单地引发它(并导致用户认为模块本身有问题,而不是通知解释器选择不当)。我会给您一个更具体的例子来说明要导入什么模块,但是我对Jython一点都不熟悉。在

换句话说,使用duck typing进行模块导入:假设导入是正确的,但是一旦您找不到预期的行为(这就是try语句应该用于什么目的)就失败了。在

另一种检查解释器的方法是使用sys模块(在Python中—我不知道Jython是否有):

^{pr2}$

相关问题 更多 >