Можно ли встраивать PyPy в приложение .NET? - PullRequest
17 голосов
/ 22 мая 2011

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

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

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

Ответы [ 2 ]

5 голосов
/ 23 мая 2011

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

3 голосов
/ 22 мая 2011

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

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

...