Что я видел, так это попытался импортировать модуль исключительно для данной версии или реализации и вызвать 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, набрав для импорта модуля: предположим, что импорт был выполнен правильно, но произойдет сбой, как только вы не сможете найти ожидаемое поведение (это то, что предполагается для оператора try
быть использованы для).
Другой способ проверить интерпретатор - использовать модуль sys
(в Python - я не знаю, есть ли в Jython):
>>> import sys
>>> print sys.subversion
('CPython', 'tags/r264', '75821M')