gpt4 book ai didi

python - 如何在 Google App Engine 中正确实现多个模块的多个版本?

转载 作者:太空狗 更新时间:2023-10-30 01:34:07 24 4
gpt4 key购买 nike

我一直在尝试创建一个包含各种模块的 Google App Engine 项目,每个模块都有不同的版本;但我无法让它工作。

我在 google modules guide website 上浏览了所有内容但是他们对应用程序层次结构的描述非常模糊。我下载了一个简单的测试应用程序来查看它是如何工作的(我无法开始工作)。

这是现在应用程序的结构: http://www.iteratorium.eu/stackoverflow/structure.jpg

整个事情都压缩在这里: http://www.iteratorium.eu/stackoverflow/flask_app.zip

一共有三个模块:default、my-module和mobile-frontend,my-module和mobile-frontend在v_one和v_two目录下都有两个版本。每个版本都有自己的 .yaml 文件,其中包含一个处理程序(为了测试目的保持简单)

结构至少是正确的吗?当我通过 dev_appserver.py 文件加载应用程序时,只要我不加载同一模块的两个版本,一切都很好。在这种情况下,会发生这种情况:

me@MY_COMPUTER:~/flask_app$ python ~/google_appengine/dev_appserver.py dispatch.yaml app.yaml mobile-frontend/v_one/mobile-frontend.yaml my-module/v_one/my-module.yaml my-module/v_two/my-module.yaml

产生回溯和以下内容:

google.appengine.tools.devappserver2.errors.InvalidAppConfigError: Duplicate module: my-module

(两个版本都通过 appcfg.py 上传到 appengine 没有任何错误,可能只是本地主机服务器无法处理许多版本)

如果我只加载每个模块的一个版本,一切正常,但模块无法从 lib 目录导入任何内容。通过浏览器访问 http://localhost:8082/mobiler 会在终端中产生以下结果:

from flask import Flask
ImportError: No module named flask

我在 appengine_config.py 文件中定义了 lib 文件夹的路径,但它似乎不适用于模块。这就是我停下来并决定来到这里的地方,因为我什至不确定结构是否正确,而且我可能会偏离所有这些。

那么...我离我还有多远?

最佳答案

注意:开发服务器不会让你加载同一模块的不同版本

您需要将模块定义放在顶层目录中,以便加载 appengine_config.py。

考虑到您真的很想将两个版本的代码分开,更好的应用组织方式如下(仅显示移动前端以保持简短):

root
|__ mobile-frontend
| |__ v_one
| |__ __init__.py
| |__ mobiler.py
| |__ v_two
| |__ __init__.py
| |__ mobiler.py
|__ appengine_config.py
|__ dispatch.yaml
|__ mobile_frontend_v_one.yaml
|__ mobile_frontend_v_two.yaml

让 mobile_frontend_v_one.yaml 有类似的东西:

handlers:
- url: .*/mobiler
script: mobile-frontend.v_one.mobiler.app

关于python - 如何在 Google App Engine 中正确实现多个模块的多个版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24354175/

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