Google App Engine 使用 Flask 和 Gunicorn 的灵活 Python 环境

问题描述 投票:0回答:1

我曾经使用以下 app.yaml 为我的谷歌应用程序引擎 python 项目进行设置:

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app

runtime_config:
  python_version: 3

resources:
  cpu: 1
  memory_gb: 2.3
  disk_size_gb: 10
  volumes:
  - name: ramdisk1
    volume_type: tmpfs
    size_gb: 0.5

manual_scaling:
  instances: 1

还有一个requirements.txt,如下所示:

Flask==0.12.2
gunicorn==19.7.1
numpy==1.8.0
scipy==1.5.3
mysql-connector-python==8.0.23

但是 Google 做到了这一点,因此您不能再使用 python 版本 3 进行部署,现在 app.yaml 文件必须如下所示或类似的内容:

runtime_config:
  operating_system: "ubuntu22"
  runtime_version: "3.12"

这使得我的requirements.txt不起作用,我不断更改它,我的最新版本是这样的:

Flask==2.0.3
gunicorn==22.0.0
numpy==2.1.1
scipy==1.14.0
mysql-connector-python==9.0.0
Jinja2==3.1.1
MarkupSafe==2.1.1
Werkzeug==2.0.3

无论我对这些库进行了多少更改或更改了哪些版本,我总是会遇到某种错误,无论是gunicorn、flask、Werkzeug还是Jinja2。

这个最新版本在尝试使用 gcloud app deploy 进行部署时出现错误:ImportError: 无法从 'jinja2' 导入名称 'Markup' (/layers/google.python.pip/pip/lib/python3.11/site-packages /jinja2/init.py)。我还使用 Python 3.10 而不是 3.12,因为它似乎会给我带来更多错误。

如果有人能给我一个与gunicorn和Flask一起使用的requirements.txt,并且带有仍然可以部署的python版本,我将非常感激。

python flask flexbox cloud gunicorn
1个回答
0
投票

我的同事最终发现,我们使用 python 版本 3.11 和以下requirements.txt 文件:

Flask==2.1.3
Werkzeug==2.3.7
gunicorn==22.0.0
numpy==2.1.1
scipy==1.14.0
mysql-connector-python==9.0.0

© www.soinside.com 2019 - 2024. All rights reserved.