Совместимы ли сценарии CPython, IronPython, Jython друг с другом? - PullRequest
7 голосов
/ 23 декабря 2009

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

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

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

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

1 Ответ

10 голосов
/ 23 декабря 2009

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

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

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

Итак, да, пока вы избегаете несовместимостей.

...