【发布时间】:2016-04-30 14:36:44
【问题描述】:
当我尝试访问应用程序根目录中 lib 目录中的库时,我收到 ImportError。
我在documentation 中完成了必要的步骤,它只适用于一个模块,但一旦我移动到这个包含多个模块的目录结构,它就不再适用了:
<app root>
|
+-- appengine_config.py
|
+-- lib
|
+-- modules
+-- module1
|
+-- module2
在我的 appengine_config.py 中添加以下行:vendor.add(os.path.join(os.path.dirname(__file__), 'lib'))
对这里可能发生的事情有什么想法吗?
编辑: 这个目录结构似乎对我有用:
<app root>
|
+-- lib
|
+-- module1
| +-- appengine_config.py
| |
| +-- app.yaml
| |
| +-- lib <symlink to app root lib>
+-- module2 (same as module 1)
我认为 appengine_config.py 是在主应用程序级别而不是模块级别定义的东西。在每个模块中复制相同的文件和符号链接是否正确。
【问题讨论】:
-
您的模块的
.yaml文件在哪里?我的意思是您是否遵循文档中的第一个或第二个应用程序结构建议:cloud.google.com/appengine/docs/python/modules/… -
queue.yaml、cron.yaml等顶级 yaml 文件位于应用根目录中,而app.yaml文件位于modules/module1、modules/module2目录中。我主要遵循第一个应用程序结构,但将所有模块嵌套在模块目录中。很抱歉命名混乱,因为它可能会与您的标准 Python 模块混淆。