Я могу загрузить модули Python (.py, .pyc, .pyd) из zip-файла, вызвав "import some_module"
из интерпретатора Python только после расширения sys.path для включения zip-файла
и только после того, как я бегу
import zipextimporter
zipextimporter.install()
Последнее требуется для модулей .pyd.
Я также могу загрузить модули Python .py и .pyc из Python, встроенного в C ++. Однако, чтобы также загрузить модули .pyd из встроенного Python, я добавил
PyRun_SimpleString("import zipextimporter");
C ++ exe работает без этой строки без ошибок. Но следующая команда
PyRun_SimpleString("zipextimporter.install()");
дает мне эту ошибку:
![enter image description here](https://i.stack.imgur.com/3iYeR.png)
Почему zipextimporter.install () аварийно завершает работу, когда Python встроен?
Как я могу решить это?
Возможно, это связано с тем, как код на C ++
компилируется? Я использую g ++:
g++ embed-simple.cpp -IE:\Python27\include -LE:\Python27\libs -lpython27 -o embed-simple
Я видел ссылку
Как связать msvcr90.dll с mingw gcc?
Может ли это дать решение?
Если да, то как мне это настроить, gcc -> g ++, поскольку я использую код C ++, а не C.
Я использую Python 2.7.2 на WinXP.
После чистой установки Python 2.7.2 я не получаю ошибку времени выполнения, просто вот так:
Ошибка импорта: модуль не указан ....
Будет ли иметь значение способ компиляции встроенного сценария C ++? Я использовал g ++. Я также
скомпилирован с помощью компилятора Intel, но это дало ту же ошибку времени выполнения Возможно, мне стоит попробовать MS Visual C ++.
Или использовать ctypes для импорта pyd?