在Google App Engine上部署Django应用后出现“No module named appengine.base”错误
我正在尝试把一个Django应用程序部署到Google App Engine上。虽然应用程序成功部署了,但当我在浏览器中访问它时,却出现了以下错误:
<class 'django.core.exceptions.ImproperlyConfigured'>: 'appengine' isn't an available database backend. Available options are: 'dummy', 'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite3'
Error was: No module named appengine.base
Traceback (most recent call last):
File "/base/data/home/apps/[app_id]/test.350631415612260549/main.py", line 29, in <module>
InstallAppengineHelperForDjango()
File "/base/data/home/apps/[app_id]/test.350631415612260549/appengine_django/__init__.py", line 545, in InstallAppengineHelperForDjango
InstallDjangoModuleReplacements()
File "/base/data/home/apps/[app_id]/test.350631415612260549/appengine_django/__init__.py", line 262, in InstallDjangoModuleReplacements
import django.db
File "/base/data/home/apps/[app_id]/test.350631415612260549/django/db/__init__.py", line 41, in <module>
backend = load_backend(settings.DATABASE_ENGINE)
File "/base/data/home/apps/[app_id]/test.350631415612260549/django/db/__init__.py", line 37, in load_backend
raise ImproperlyConfigured(error_msg)
补充说明:我不是这个应用程序的原开发者,对Google App Engine也不是很熟悉。
我的工作流程是这样的:从Git仓库拉取代码,然后在GoogleAppEngineLauncher的图形界面(适用于Mac OS X)中将其配置为一个新应用,最后进行部署。我是不是漏掉了什么步骤,比如在部署之前需要在本地配置一些后端设置?
1 个回答
0
因为你的项目根目录里有 appengine_django,所以你在使用 App Engine Helper。这可能会导致一些导入路径的问题,你可以尝试升级到这个助手的最新版本。不过,这个项目已经不再维护了,如果可以的话,建议你转到 django-nonrel。在迁移的过程中,你需要在 settings.py 文件中把数据库引擎从 'appengine'(这就是导致你错误的原因)改成 'dbindexer'。