gpt4 book ai didi

python - Google App Engine + Django 在项目中有多个应用程序 = ImportError

转载 作者:行者123 更新时间:2023-12-01 05:29:59 24 4
gpt4 key购买 nike

我正在尝试让“Hello World”Django 1.5 应用程序与 Google App Engine 一起使用。如果我的目录结构如下所示,一切都会完美:

.
| ____myproj
| |______init__.py
| |____app.yaml
| |____settings.py
| |____urls.py
| |____views.py
| |____wsgi.py
|____manage.py

但是,一旦我向项目添加新的“应用程序”(使用 manage.py startapp app1),我就开始收到 ImportErrors。

这是我想要的理想结构:

.
|____app1
| |______init__.py
| |____admin.py
| |____models.py
| |____tests.py
| |____views.py
|____myproj
| |______init__.py
| |____app.yaml
| |____settings.py
| |____urls.py
| |____views.py
| |____wsgi.py
|____manage.py

要启用“app1”,我将 settings.py 中的 INSTALLED_APPS 修改为:

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app1',
)

请注意,我将“app1”添加到了 INSTALLED_APPS 中。我一这么做,GAE 就开始提示:导入错误:没有名为 app1 的模块

我做错了什么?如果我尝试使用纯 Django(而不是 AppEngine)运行应用程序,一切都很好。但是,如果我尝试使用 AppEngine 运行它,它不喜欢我添加到 INSTALLED_APPS 中的“app1”。从 INSTALLED_APPS 中删除该行会使一切再次运行,AppEngine 中不会出现错误!

注意:我的 PYTHONPATH 包含“/Users/mel/Sites/myproj/myproj”,后跟所有标准 Google 应用引擎路径。

最佳答案

我自己解决了!事实证明这是我的配置错误。当您的 Django 项目包含多个应用程序时,app.yaml 文件需要位于项目目录“外部”。换句话说,app.yaml 文件需要位于 manage.py 旁边,而不是位于 settings.py 旁边。这样,项目中的所有应用程序都会自动包含在 PYTHONPATH 中。

注意:您可能还需要将以下两行添加到 app.yaml:

env_variables:
DJANGO_SETTINGS_MODULE: 'myproj.settings'

关于python - Google App Engine + Django 在项目中有多个应用程序 = ImportError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20456997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com