Лучший способ обнаружить IronPython

Я должен записать модуль, который будет использоваться и от CPython и от IronPython. Что лучший способ состоит в том, чтобы обнаружить IronPython, так как мне нужно немного отличающееся поведение в этом случае?

Я заметил, что sys.platform является "win32" на CPython, но "cli" на IronPython.

Есть ли другой предпочтительный/стандартный способ обнаружить его?

15
задан Meh 8 May 2010 в 18:54
поделиться

2 ответа

Новым в Python 2.6 является platform.python_implementation :

Возвращает строку, идентифицирующую реализацию Python. Возможные возвращаемые значения: «CPython», «IronPython», «Jython».

Это, вероятно, самый чистый способ сделать это, и это почти самый стандартный способ. Однако я считаю, что Jython все еще работает с версией 2.5, поэтому я не уверен, что вы можете полагаться на это для обнаружения Jython (но это все равно не входило в ваш вопрос).

17
ответ дан 1 December 2019 в 02:37
поделиться

"cli" (= Common Language Infrastructure = .NET = IronPython), вероятно, надежен.

Насколько я знаю, вы можете получить доступ.NET в IronPython, поэтому вы можете попробовать импортировать библиотеку .NET и перехватить исключение, которое она выдает, когда .NET недоступен (как в CPython).

2
ответ дан 1 December 2019 в 02:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: