Есть ли способ построить C-подобную DLL из модуля Python? - PullRequest
7 голосов
/ 14 марта 2009

У меня есть модуль Python с обычными глобальными функциями. Мне нужно вызвать его из другой среды сценариев бизнес-домена, которая может вызывать только C-библиотеки. Есть ли способ собрать мои модули Python так, чтобы в другой код он мог вызываться как стандартная функция C, экспортируемая из DLL? Это для среды Windows. Я знаю о IronPython, но, насколько я знаю, он может создавать только сборки .NET, которые не могут вызываться как функции C DLL.

Ответы [ 3 ]

6 голосов
/ 14 марта 2009

Взгляните на эту статью Codeproject. Одним из способов было бы обернуть ваши функции Python в Cll и открыть его для вызываемого.

COM - это двоичный протокол для решения этой проблемы. Но вам придется обернуть эту библиотеку Python в оболочку COM. И добавьте немного кода на вызывающую сторону.

3 голосов
/ 14 марта 2009

Стандартным решением является встраивание интерпретатора Python (который уже является C DLL) в ваше приложение.

https://docs.python.org/extending/windows.html#using-dlls-in-practice

http://docs.python.org/extending/embedding.html

2 голосов
/ 14 марта 2009

Py2exe может генерировать COM-библиотеки из кода Python, компилируя и встраивая код Python + интерпретатор. AFAIK пока не поддерживает обычные библиотеки DLL. Для этого смотрите ответ Диркгентли о встраивании Python самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...