如何在gae的子文件夹中使用脚本?

时间:2012-10-20 15:35:13

标签: python google-app-engine

当我要为我的应用程序编写子模块时,我想将所有内容放在像/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

3 个答案:

答案 0 :(得分:10)

最后我这样解决了:

  1. __init__.py文件夹中添加foo/,将其留空。
  2. foo/foo.app更改为foo.foo.app
  3. 它似乎与threadsafe无关,我将其更改为true并且它仍然有效。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

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

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