gpt4 book ai didi

python - 在 Google App Engine 上部署 Flask 应用程序时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:24 24 4
gpt4 key购买 nike

我正在尝试使用 Windows 在 GAE 上部署 Flask 应用程序。它在本地运行良好,但当我尝试在 GAE 上运行时遇到问题。

首先我在 flask\json.py 中得到这个错误:

from itsdangerous import json as _json

ImportError: No module named itsdangerous

下载解压https://pypi.python.org/pypi/itsdangerous在同一目录中并不能解决问题。如果我只是抓取 itsdangerous.py 并将其放在 flask 目录中,我会得到:

_slash_escape = '\\/' not in _json.dumps('/')

AttributeError: 'module' object has no attribute 'dumps'

我读到这可能是由于 json.py 文件冲突,但我也尝试过使用绝对路径导入 json,但似乎没有什么不同。

最佳答案

您将 itsdangerous.py 放在了错误的目录中。因为json.py和itsdangerous.py都存在于/flask目录下,所以itsdangerous.py会导入/flask/json.py而不是右边的。

GAE官方doc提到了一种包含第 3 方库的方法:

You can include other pure Python libraries with your application by putting the code in your application directory. If you make a symbolic link to a module's directory in your application directory, appcfg.py will follow the link and include the module in your app.

显然,这是一个糟糕的解决方案,因为我们不想将我们使用的库与我们编写的代码混合在一起。社区找到了更好的方法。

我建议您使用 gae-flask 项目模板(例如 flask-appengine-template )或至少遵循其部分项目结构。您可以将所有这些第 3 方库放在/lib 之类的目录下,并将“/lib”添加到 sys.path。实际上,flask-appengine-template 默认包含常见的 flask 模块,例如 itsdangerous for you。

示例代码:

import os
import sys

sys.path.insert(1, os.path.join(os.path.abspath('.'), 'lib'))
import application

关于python - 在 Google App Engine 上部署 Flask 应用程序时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20895266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com