Я создал приложение на Flask с версией Python 3.9 и разместил его в репозитории GitHub. Оно успешно работает на render.com. Чтобы изучить Google App Engine, я клонировал репозиторий, перешёл в папку и попытался установить пакеты, используя:pip install -r requirements.txt
. Каждый раз, когда я запускаю эту команду, я получаю длинную ошибку DEPRECATION:
Сначала у меня не было файла app.yaml
. Поэтому я добавил его в оболочку Gcloud:
runtime: python39
entrypoint: gunicorn -b :$PORT app:app
env_variables:
ENV: 'production'
handlers:
- url: /.*
script: auto
По-прежнему я получаю ту же ошибку с pip install -r requirements.txt
! В чем может быть проблема?
Ответ
Ваша проблема с установкой зависимостей из requirements.txt
и получением ошибки DEPRECATION, связанной с Python 2.7, может происходить по нескольким причинам.
Шаги по устранению проблемы:
-
Проверьте вашу среду Python:
Убедитесь, что вы используете правильную версию Python. Запустите команду:python --version
Или, для виртуальной среды:
source venv/bin/activate python --version
Вы должны увидеть Python 3.9. Если вы видите Python 2.7, вам нужно активировать правильную среду или установить Python 3.9.
-
Создайте и активируйте виртуальную среду:
Это поможет изолировать зависимости вашего приложения. Выполните следующие команды:python3 -m venv venv source venv/bin/activate
Теперь установив зависимости из
requirements.txt
, вы используете Python 3.9. -
Обновите
pip
:
Перед установкой зависимостей убедитесь, что вы используете последнюю версиюpip
. Обновитеpip
с помощью команды:pip install --upgrade pip
-
Установите зависимости:
После обновленияpip
установите зависимости:pip install -r requirements.txt
-
Проверьте
requirements.txt
:
В вашем файлеrequirements.txt
могут быть зависимости, которые зависят от Python 2.7. Откройтеrequirements.txt
и проверьте, нет ли там пакетов, которые не совместимы с Python 3. Если такие пакеты есть, замените их на актуальные версии или совместимые с Python 3. -
Добавьте
app.yaml
:
Вы уже добавилиapp.yaml
. Убедитесь, что он правильно настроен, и у вас нет опечаток. Ваш файл выглядит правильно, но убедитесь, чтоentrypoint
указывает на правильный файл и приложение. - Деплой в Google App Engine:
После выполнения всех шагов можно запустить команду для деплоя в Google App Engine:gcloud app deploy
Дополнительные советы:
- Убедитесь, что ваша локальная среда настроена правильно и версии пакетов обновлены.
- Если проблема сохраняется, проверьте настройки вашего GCP проекта, убедитесь, что версия Python 3.9 поддерживается.
- Для более детальной информации о проблеме можете использовать:
pip install -r requirements.txt --no-cache-dir
Это поможет избежать использования сохраненных кэшированных пакетов, которые могут быть повреждены.
Если после выполнения всех шагов проблема продолжает возникать, вы можете предоставить дополнительные сообщения об ошибках или логи, чтобы помочь в дальнейшей диагностике проблемы.