У меня встроенный python на мобильном устройстве успешно, но теперь, как включить библиотеку python, такую как urllib?
Кроме того, как я могу включить собственные скрипты python без PYTHONPATH?
(обратите внимание: python не установлен в этой системе)
Самый простой способ - создать 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)