Можно ли встраивать PyPy в приложение.NET?

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

Тем не менее, хотя PyPy может быть построен на основе интерфейса командной строки, похоже, это просто дает вам автономный интерпретатор Python в виде python.exe. Я не смог найти никакой документации для создания чего-то, что может быть встроено в хост-приложение.NET.

Есть ли способ использовать (без стека) PyPy для запуска сценариев Python из приложения.NET и позволить этим сценариям взаимодействовать с объектами CLR, предоставленными хост-приложением?

2 ответа

Решение

Бэкэнд CLI PyPy не так совершенен, как бэкэнд C, а также не интегрируется с библиотеками.NET. Хотя обычный PyPy, скомпилированный в C, готов к работе, я бы не назвал готовую версию.NET готовой. Также отсутствует JIT (хотя в этой области уже проделана определенная работа) и микропотоки. Пока кто-то не вмешивается, IronPython, кажется, является единственным жизнеспособным вариантом на данный момент.

Нет, нет CPython имел возможность доступа к библиотекам.NET, используя Python для.NET (см. http://pythonnet.github.io/), поддерживаемый на github, но, кроме IronPython, никогда не было способа встроить интерпретатор Python в.NET приложение. Это было одним из главных пунктов продажи.

На заметку о том, что IronPython (по умолчанию) имеет меньший размер стека, чем CPython, когда дело доходит до рекурсии. То есть вы должны передать в ipy.exe параметр командной строки "-X:FullFrames", чтобы включить фреймы стека CPython-esque. Знайте, что это не так хорошо, как PyPy... но это может помочь:)

Другие вопросы по тегам