3

我正在尝试迁移我的应用程序并且一切正常,直到我将 app.yaml 从threadsafe: false更改为threadsafe: true

我收到的错误是:

无法使用 CGI 处理程序启用线程安全:a/b/xyz.app

经过一番谷歌搜索后,我发现:

只有顶级目录中的脚本才能作为处理程序,因此如果您在子目录中有任何脚本,则需要移动它们,并且脚本引用相应更改:

- url: /whatever
# 这不起作用 ...
#脚本:lib/some_library/handler.app
# ... 这确实有效
脚本:handler.app

是否有任何解决方法(如果上述研究有效),因为我不想改变我的项目层次结构?

4

2 回答 2

4

只要它是有效的 python 导入路径,您就可以在任何地方使用您的处理程序。

我的 app.yaml 充满了像这样的条目

- url: /_ah/queue/deferred
  script: google.appengine.ext.deferred.application
  login: admin

文件夹__init__.py中需要它们以使它们作为模块工作,但您通常可以将任何文件夹替换/.

或者按照 Daniel 的建议进行操作,并注意您可能必须先修改sys.path第一个以包含libdir,然后再导入处理程序。

于 2012-06-06T10:23:17.147 回答
2

将主文件放在顶级目录中并在那里导入所有处理程序,然后通过该文件引用它们

于 2012-06-06T08:29:34.037 回答