Как встроить библиотеку Python в приложение C ++?

1

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

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

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

Теги:
embed

1 ответ

1
Лучший ответ

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню