2

当我要为我的应用程序编写一个子模块时,我想把所有的东西放在一个子文件夹中,比如/foo,我给脚本命名foo.py,里面有一个

app = webapp2.WSGIApplication([('/foo/', Index)])

然后到了

Fatal error when loading application configuration:
threadsafe cannot be enabled with CGI handler: foo/foo.app
  in "/home/***/workspace/***/app.yaml", line 23, column 20

然后我将它设置为false,它变成错误500

ImportError: Could not find module foo.foo.app

app.yaml的就像

application: ***
version: alpha
runtime: python27
api_version: 1
threadsafe: false

handlers:
- url: /static
  static_dir: static

- url: /admin.*
  script: admin.app
  login: admin

- url: /foo
  script: foo/foo.app

- url: /.*
  script: index.app
4

3 回答 3

11

最后我像这样解决了:

  1. 加入__init__.py文件夹foo/,留空。
  2. 更改foo/foo.appfoo.foo.app

它似乎与它无关threadsafe,我将其更改为true并且它仍在工作。

于 2012-10-22T06:59:34.057 回答
2

foo 文件夹必须是 python 包才能工作。因此,只需在其中添加一个__init__.py就可以了。

于 2012-10-20T17:07:50.713 回答
0

为了在 python 中将您的文件夹标记为一个包,您唯一需要做的就是__init__.py在该文件夹中创建一个空文件(注意 init 两侧的两个下划线)。

然后为了使用另一个文件中的代码,您必须导入相关文件。

import foo其中 foo 代表文件夹中的文件名 (foo.py)

于 2012-10-21T10:31:54.143 回答