Как встроить библиотеку Python в приложение C ++? - PullRequest
1 голос
/ 01 сентября 2010

Я успешно встроил Python в мобильное устройство, но теперь, как мне включить библиотеку Python, такую ​​как urllib ?

Кроме того, как я могу включать свои собственные скрипты Python безa PYTHONPATH?

(обратите внимание: python не установлен в этой системе)

1 Ответ

1 голос
/ 01 сентября 2010

Самый простой способ - создать ZIP-файл, содержащий весь необходимый вам код Python, и добавить его в переменную окружения PYTHONPATH вашего процесса (через setenv()) до инициализации встроенного интерпретатора Python.Использование библиотек .pyd можно сделать аналогично, добавив их в тот же каталог, что и .zip, а также включив каталог в PYTHONPATH.

Использование вызова setenv() может вызвать проблемы в Windows, если выМикшируем c-runtime версии.Я потратил много мучительных часов на то, что setenv() устанавливает только переменные окружения для версии c-runtime, с которой поставляется ваш компилятор.Так, если, например, Python был собран с VC ++ 2005, а ваш компилятор - VC ++ 2008, вам нужно будет использовать альтернативный механизм.Просмотр исходных текстов для py2exe и / или PyInstaller может предоставить вам лучшее решение (поскольку вы делаете по сути то же самое, что и эти инструменты), но простой альтернативой является "обмануть"msgstr "с помощью PyRun_SimpleString() установить путь поиска модуля из самого Python.

snprintf(buff, "import sys\nsys.path.append("%s")\n", py_zip_filename)
PyRun_SimpleString(buff)
...