Добавление локального репозитория для внедрения зависимостей в python в облаке Google - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь развернуть приложение Python в Google Cloud.В приложении у меня есть зависимость, которая на самом деле доступна локально.Таким образом, чтобы добавить его в проект с помощью pip.Я использую pip install -r requirements.txt --find-links PATH_TO_DEPENDENCY.Все работает нормально на местном.Но когда я развертываю его в Google Cloud с помощью gcloud app deploy, он внутренне вызывает pip install -r requirements.txt, из-за чего локальная зависимость не устанавливается и код не выполняется.

Есть ли способ изменить внутреннюю команду gcloud?использует или способ указать серверу использовать эту зависимость откуда-то?

1 Ответ

0 голосов
/ 01 июня 2018

Один из вариантов - использовать виртуальную среду и pip freeze для сбора всех требований к вашему приложению, включая их зависимости:

  • извлечение новой виртуальной среды и создание снимка исходного содержимого пакетас помощью pip freeze > requirements.1.txt
  • используйте локальный вызов для установки всех требований и их зависимостей, а затем получите новый снимок с помощью pip freeze > requirements.2.txt
  • , создайте новый requirements.txt, содержащий все пакеты, присутствующие в requirements.2.txt, но отсутствует в requirements.1.txt (то есть либо в исходном requirements.txt, либо в зависимости)

Затем используйте этот новый requirements.txt для своего приложения, которое должно тянутьвсе зависимости во время развертывания pip install -r requirements.txt.

Другой вариант, немного более утомительный, но который можно использовать для зависимостей, которые нельзя установить с помощью pip, заключался бы в создании пользовательской среды выполнения на основе соответствующего, предоставленного Googleобраз докера, в который вы добавляете дополнительные не-python-зависимости, необходимые вашему приложению.От О пользовательских средах выполнения :

Пользовательские среды выполнения позволяют определять новые среды выполнения, которые могут включать дополнительные компоненты, такие как языковые интерпретаторы или серверы приложений.

См. Также Создание пользовательских сред выполнения .

...