当我要为我的应用程序编写子模块时,我想将所有内容放在像/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
答案 0 :(得分:10)
最后我这样解决了:
__init__.py
文件夹中添加foo/
,将其留空。foo/foo.app
更改为foo.foo.app
它似乎与threadsafe
无关,我将其更改为true
并且它仍然有效。
答案 1 :(得分:2)
foo文件夹必须是python包才能工作。因此,只需在其中添加__init__.py
就可以了。
答案 2 :(得分:0)
为了在python中将文件夹标记为包,您唯一要做的就是在该文件夹中创建一个空的__init__.py
文件(注意init两侧的两个下划线)。
然后,为了使用其他文件中的代码,您必须导入相关文件。
import foo
其中foo代表文件夹中的文件名(foo.py)