Я пытаюсь написать программный плагин, который встраивает Python. В Windows подключаемый модуль технически представляет собой DLL (это может иметь значение). В Python Windows FAQ говорится:
1. Не не встраивайте Python напрямую в ваш .exe файл. В Windows Python должен быть DLL для обработки импорта модулей, которые сами являются DLL. (Это первый ключевой недокументированный факт.) Вместо этого сделайте ссылку на pythonNN.dll; обычно он устанавливается в C: \ Windows \ System. NN - это версия Python, такое число, как «23» для Python 2.3.
Мой вопрос: почему именно Python должен быть DLL? Если, как в моем случае, хост-приложение является не .exe, а также DLL, могу ли я встроить в него Python? Или, возможно, это примечание означает, что сторонние расширения C полагаются на наличие pythonN.N.dll
, а другие DLL не подходят? Если предположить, что я действительно хочу иметь одну DLL, что мне делать?
Я вижу файл dynload_win.c
, который, похоже, является модулем для импорта расширений C в Windows, и, насколько я могу судить, он сканирует файл расширения, чтобы найти, какой pythonX.X.dll
он импортирует; но у меня нет опыта работы с Windows, и я не совсем понимаю весь код там.