Совместимы ли скрипты CPython, IronPython, Jython друг с другом?

Я почти уверен, что скрипты Python будут работать во всех трех, но я хочу убедиться. Я читал здесь и там о редакторах, которые могут писать CPython, Jython, IronPython, и я надеюсь, что я много изучаю различие.

Моя ситуация: у меня есть 3 разных API, которые я хочу протестировать. Каждый API выполняет один и тот же функциональный код, но отличается реализацией. Я пишу обертки вокруг API каждого языка. Каждая оболочка должна предоставлять точно такую ​​же функциональность и реализацию для python, используя Boost::python, Jython и IronPython.

Мой вопрос: будет ли сценарий Python, написанный с использованием этих открытых методов (общих для каждого языка), работать во всех трех «разновидностях» Python?

Как я уже сказал, я почти уверен, что ответ «Конечно», но мне нужно убедиться, прежде чем я потрачу слишком много времени на это.


person Charles    schedule 23.12.2009    source источник


Ответы (1)


Короткий ответ: иногда.

Некоторые проекты, созданные на основе IronPython, могут не работать с CPython, а некоторые модули CPython, написанные на C (например, NumPy), не будут работать с IronPython.

В аналогичном замечании, хотя Jython реализует спецификацию языка, он имеет несколько несовместимостей с CPython (например, ему не хватает нескольких частей стандартной библиотеки CPython, и он может импортировать пакеты и классы стандартной библиотеки Java, такие как Swing)

Так что да, если вы избегаете несовместимости.

person KingRadical    schedule 23.12.2009
comment
Хорошо, я прочитал несколько сообщений об определении того, какую библиотеку вы используете в python, поэтому, пока несовместимости сведены к минимуму, это должно работать довольно хорошо. Благодарность - person Charles; 23.12.2009
comment
@Charles: Кроме того, каждый из других интерпретаторов Python (Jython, IronPython) будет иметь хорошую документацию с подробным описанием того, где он не соответствует CPython. Если вы будете следить за этими документами, вы сможете быстро сказать, как только вы выйдете за пределы того, что работает на всех трех. - person Travis Bradshaw; 23.12.2009
comment
различия между ipython и cpython: en.wikipedia.org/wiki/IronPython#Differences_with_CPython кажется довольно крошечный. - person zinking; 03.12.2013