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


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

3 8

3 ответа:

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

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

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

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

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

Просто Идея

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

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