Python and.NET интеграция

в настоящее время я смотрю на python, потому что мне очень нравятся возможности синтаксического анализа текста и библиотека nltk, но традиционно я программист .Net/C#. Я не думаю, что IronPython является точкой интеграции для меня, потому что я использую NLTK и, вероятно, понадобится порт этой библиотеки в CLR. Я посмотрел немного на Python для .NET и было интересно, было ли это хорошее место для начала. Есть ли способ маршалировать класс python в C#? Кроме того, это решение все еще используется? А еще лучше, кто-нибудь это сделал? Одна вещь, которую я рассматриваю, - это просто использование среды персистентности в качестве посредника (разбор в Python, магазин в MongoDB и запуск сайта в .NET).

3 ответов


NLTK является pure-python и, таким образом, может быть легко запущен на IronPython. Поиск объявлен этот билет - все, что нужно сделать, это установить пару дополнительных библиотек Python, которые не поставляются по умолчанию с IronPython.

Это, вероятно, самый простой способ для вас интегрировать. В противном случае вам придется либо запустить Python как подпроцесс, что звучит сложно, либо запустить Python как сервер, который отвечает на ваши запросы. Это, вероятно, самый масштабируемый, хотя и сложный, подход. Если вы идете этим путем, рассмотрите Twisted для упрощения кода сервера.

но сначала попробуйте IronPython...


Я не знаю, почему у вас проблемы с IronPython. вы все еще можете использовать любые вызовы nltk.

чтобы ответить на ваш вопрос о переносе класса Python в C#: try компиляция кода python в EXE. Это создает DLL со всеми вашими классами python в нем. Это то, что было вокруг некоторое время, и он работал как шарм для меня в прошлом


просто идея

Как насчет запуска Python в качестве сервера и подключения его из .NET с помощью сокета?

Так как загрузка NLTK занимает время и лучше загрузить его заранее в любом случае.