Запустить модуль Python в C #? - PullRequest
3 голосов
/ 25 января 2010

Последние два дня я бился головой, пытаясь выяснить, возможно ли запустить модуль python в C #. Меня интересует модуль Sympy, который можно найти здесь http://code.google.com/p/sympy/ (на случай, если кому-то интересно). Это математическая библиотека, и она делает то, что мне нужно. Я не нашел C # библиотеку, которая так хороша (я тестировал math.net и другие ..)

Из поиска в Google я обнаружил, что вы можете выполнять код Python внутри C #, используя IronPython. Не найдено ни одного действительно хорошего примера использования модуля с IronPython или с PythonNet.

Может кто-нибудь сказать мне, возможно ли использовать модуль Python в C # и что он посоветует IronPython или PythonNet. Также, если это возможно, означает ли это, что моему приложению понадобится установленный компилятор python для работы или будет достаточно dll, на который ссылаются?

Ответы [ 2 ]

3 голосов
/ 25 января 2010

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

затем вы можете скомпилировать его в исполняемый файл, чтобы ваши пользователи не знали разницу.

Теперь это предположение, но, возможно, вы сможете загрузить свою сборку в другие проекты на C # и использовать ее таким образом. то есть обернуть библиотеку python Ironpython, а затем загрузить ее в c #

это не элегантно, но, думаю, будет работать.

1 голос
/ 27 марта 2019

Я знаю, это старый вопрос, но это может кому-то помочь:)

Таким образом, вы можете поместить свой скрипт на pythonnet в папку Anaconda3 \ Lib \ site-packages и использовать пример pythonnet на их вики-странице:

static void Main(string[] args)
{
    using (Py.GIL())
    {
        dynamic foo = Py.Import("your_script_name");
    }
}

И упомянутая dll должна сделать эту работу. Что касается Iron Python, я думаю, что он поддерживается только для Python 2.x и больше не управляется авторами, так что это может быть немного сложнее. Также вы можете обратить внимание на проблему с потоками IIS для Python GIL, через некоторое время это может стать огромной болью.

...