У меня сейчас работает приложение Flask на Google App Engine. Локально приложение работает в виртуальной среде и ссылается на соответствующие библиотеки, установленные в каталоге venv / Lib / site-packages.
Когда приложение обновляется в GAE, файл requirements.txt используется для определения того, какие библиотеки / зависимости необходимо установить. Я часто получаю утомительные ошибки, такие как «Модуль не найден», и мне приходится не забывать добавить указанный модуль в мой файл requirements.txt, а затем повторно развертывать и проверять журналы ошибок, что требует времени.
В моей виртуальной среде установлено множество зависимостей, только некоторые из которых нужно указать в моем файле requirements.txt, поскольку я использую только некоторые из них в своем приложении Flask. Итак, я пытаюсь найти способ протестировать свое приложение локально, как если бы оно работало в GAE, заставляя Flask ссылаться только на эти зависимости в моем файле requirements.txt, поэтому, если есть ошибка «Модуль не найден», я выиграл Мне не нужно повторять gcloud app deploy и заново перебирать журналы, а просто делать это быстро на моей собственной машине.
Надеюсь, это было не так уж сложно, лол.






Flask приведет к установке Jinja. pip3 freeze > requirements.txt или pip2 freeze > requirements.txt для автоматического создания файла requirements.txt. Проблема с этим методом заключается в том, что он будет включать все, что установлено в вашем виртуальном окружении, и, похоже, вы этого не хотите.pipreqs (см. Этот ответ Переполнение стека).venv, создаю requirements.txt только с основами - python, flask / django, запускаю вашу программу, а затем вручную добавляю каждую библиотеку, на которую она жалуется, в файл requirements.txt и переустанавливаю содержимое ваш файл requirements.txt. Промыть и повторить, пока не исчезнут ошибки. Теперь у вас есть полные требования.
У вас должен быть один venv для каждого проекта, который содержит только зависимости этого проекта.