gcloud app enigne. где создать virtualenv? внешний каталог для моего проекта? - PullRequest
0 голосов
/ 19 февраля 2020

Я начинаю использовать gcloud и appengine, и я не знаю, какой лучший способ управлять virtualenvs.

С одной стороны, https://cloud.google.com/appengine/docs/standard/python3/quickstart

Создать изолированную среду Python в каталоге, внешнем по отношению к вашему проекту, и активировать его

Но с другой стороны, https://cloud.google.com/python/setup

cd your-project
python3 -m venv venv

Итак, что мне делать? Я понимаю, что логика c создания virtualenv вне каталога связана с тем, что не развертывается virtualenv при развертывании приложения gcloud, но нет способа его исключить? Если я работаю с кодом, я думаю, что virtualenv должен находиться в той же папке, где находится проект.

Спасибо за помощь, мой первый вопрос в stackoverflow! ?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

Я рекомендую вам отличать venv от источников проекта (т. Е. Всего, что вы хотели бы управлять с помощью контроля источников).

Я обычно поддерживаю:

mkdir -p ${PROJECT}/python ${PROJECT}/venv
tree -L 1 ${PROJECT}
${PROJECT}
├── python
└── venv

Это сохраняет проект вместе, но позволяет мне ударить ${PROJECT}/venv, как я sh, и это не портит код, который развертывается, например, в App Engine.

Я не видел много несоответствий в опубликованных Google руководство.

Вы хотите убедиться, что каталог venv не развернут в App Engine.

0 голосов
/ 19 февраля 2020

Это может помочь.

движку приложения gcloud не требуется отдельная виртуальная среда.

пожалуйста, внимательно ознакомьтесь с официальным документом. https://cloud.google.com/appengine/docs/standard/python3/quickstart

Посетите эту ссылку, которую вы отправили в своем вопросе. https://cloud.google.com/python/setup

Они четко упомянули, что это так. Чтобы запустить приложение Hello World на вашем локальном компьютере:

Запишите свои зависимости в файл require.txt и сохраните его в root в своем проекте, механизм приложений gcp будет внутренне управлять всеми вашими зависимости (пакеты).

рассмотрите иерархию.

ProjectFolder
->AppFolder
->manage.py
->requirements.txt

дайте мне знать, если вам нужно что-нибудь еще.

...