问题
我正在尝试将我的 geodjango 应用程序部署到 Heroku。该应用程序运行,但是当我尝试查看/admin/world/worldborder/
(wolrd geodjango 教程应用程序)或我自己的自定义 Spots 应用程序(使用 geodjango)时,站点崩溃。
如果我看一下,我heroku logs
会发现测功机出现 500 错误:
2012-07-20T08:16:23+00:00 heroku[router]: GET myapp.herokuapp.com/admin/spots/spot/ dyno=web.1 queue=0 wait=0ms service=654ms status=500 bytes=4922
然后我通过电子邮件收到此错误:
AttributeError: 'module' object has no attribute 'GeoSQLCompiler'
完整的追溯可以在这里找到
我在其他地方的 aws ec2 实例上有我的数据库服务器,并在该服务器上完成了这些安装说明。
应用上下文
Django==1.4 独角兽==0.14.2
我使用以下内容创建了我的 heroku 应用程序
heroku create myapp --stack cedar --buildpack http://github.com/cirlabs/heroku-buildpack-geodjango/
如您所见,我正在使用自定义 buildpack为 geodjango 安装所有必要的东西。如果我不使用这个自定义 buildpack 并简单地使用heroku create myapp
,那么我会收到这个很长的错误。
我还将这些添加到 heroku 配置变量中
GEOS_LIBRARY_PATH='/app/.geodjango/geos/lib/libgeos_c.so'
GDAL_LIBRARY_PATH='/app/.geodjango/gdal/lib/libgdal.so'
我已经尝试过的
我用谷歌搜索了这个错误,在这里只看到了一篇文章。基本上说要确保我的数据库后端正确设置为使用(我已经这样做了)
'ENGINE': 'django.contrib.gis.db.backends.postgis',
我还尝试更改为以下内容:
GEOS_LIBRARY_PATH='/myapp/.geodjango/geos/lib/libgeos_c.so'
GDAL_LIBRARY_PATH='/myapp/.geodjango/gdal/lib/libgdal.so'
这个应用程序在我的本地开发机器上运行良好,python manage.py runserver
或者foreman start -f Profile.dev
为什么我不能在 Heroku 上使用基于 geodjango 的应用程序,我该如何解决这个问题?