Как упаковать модули python3 для google app engine - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь выяснить, как добавить внутренний пакет в развертывание Google App Engine с Python 3 (стандарт).

В Python 2 для упаковки модулей использовалась локальная папка lib/ и appengine_config.py. Кажется, это больше не работает для Python 3? По крайней мере, мое приложение не может найти модули, которые находятся в папке lib/.

Для Python 3 возможно просто pip3 install -t . пакет. Но это очень запутанно, так как все пакеты просто установлены в корне приложения и также будут добавлены в репозиторий git нашего приложения.

Мы не можем использовать requirements.txt, поскольку модуль является внутренним и не будет доступен в PyPI.

Есть ли другой способ упаковки модулей для Google App Engine с использованием Python 3?

1 Ответ

0 голосов
/ 19 ноября 2018

Стандартная среда Python 3.7 - это «идиоматическая» среда выполнения Python, что означает, что она не добавляет автоматически специальный каталог lib в путь поиска модулей.

Вы должны продолжить «продавать» свойчастные модули в каталог lib, но вам нужно будет изменить способ их импорта.

Если ваш личный пакет foobar, а вы сделали pip install -t lib foobar, то в вашем проекте вместо:

import foobar

вы делаете:

import lib.foobar

(Вам также нужно добавить пустой файл __init__.py в каталог lib, чтобы сделать его модулем.)

...