【发布时间】:2013-03-30 12:05:51
【问题描述】:
我在 GAE 中运行最简单的 django 项目时遇到问题。
运行django-admin startproject myproj(使用来自Google SDK 的django 1.4)后,文件夹层次结构如下:
然后我将通常的 app.yaml 添加到根文件夹中 - 即添加到 manage.py 所在的同一文件夹中。
application: u-pavarotti
version: 1
runtime: python27
api_version: 1
threadsafe: true
libraries:
- name: django
version: "1.4"
builtins:
- django_wsgi: on
syncdb、dbshell、shell ... 效果很好。甚至manage.py runserver 工作文件。但是,尝试运行 dev_appserver 失败。我得到的例外是:
ImportError: Could not import settings 'settings'.
好吧,看看 google/appengine/ext/django/main(django_wsgi 基本上是为 .* 设置一个 URL 处理程序到 google.appengine.ext.django.main.app)似乎是期望在 python 路径中找到设置。但是什么都不做,要导入的模块是myproj.settings(因为 myproj 不在路径中)。
现在,将 .../myproj/myproj(下层文件夹)添加到 PYTHONPATH 可以解决我的开发机器上的所有问题,但由于我无法控制 GAE 部署中的搜索路径 - 此解决方案将无法正常工作。
我可以移动所有文件,或者只是将 settings.py 上移到 myproj 上,或者将 app.yaml 下移(有点相同),但它需要对默认生成的 settings.py 进行各种更改 - 而我不需要这是要走的路。或者,我可以编写自己的处理程序,它将实例化 django.core.handlers.wsge.WSGIHandler (旧教程曾经这样做) - 似乎至少违背了 app 的“内置”属性的创建者的意图。 yaml。
我想知道其他人是如何解决这个问题的,什么是正确的做法。
【问题讨论】: