2017-09-23 4 views
1

Je travaille sur une application GeoDjango et j'utilise Heroku (avec une pile Heroku-16) comme ma plate-forme.Heroku GeoDjango problèmes avec GDAL manquant (et éventuellement GEOS)

Je suivant les instructions here, qui spécifient les éléments suivants:

Si votre application nécessite des bibliothèques géo, un support expérimental pour une poignée de ces bibliothèques sont disponibles:

  • GDAL v2. 2,1 (v1.11.5 de cèdre-14)
  • Geos v3.6.2 (v3.4.2 pour cèdre-14)
  • Proj v4.9.3 (v4.8.0 pour cèdre-14)

Pour rendre ces bibliothèques disponibles pour votre application, il suffit de définir la variable d'environnement BUILD_WITH_GEO_LIBRARIES:

$ heroku config:set BUILD_WITH_GEO_LIBRARIES=1 

Au cours de votre prochaine construction, ces bibliothèques seront téléchargées et installées. Dans votre Django settings.py, ajoutez également les éléments suivants:

import dj_database_url 
DATABASES['default'] = dj_database_url.config() 
DATABASES['default']['ENGINE'] = 
'django.contrib.gis.db.backends.postgis' 

GDAL_LIBRARY_PATH = os.getenv('GDAL_LIBRARY_PATH') 
GEOS_LIBRARY_PATH = os.getenv('GEOS_LIBRARY_PATH') 

Cela garantira que Django peut trouver les bibliothèques GEOS qui sont installés.

J'ai mis les variables d'environnement dans Heroku:

image

Cependant, j'ai trouvé que cela ne fait pas une différence quand il est temps de déployer:

2017-09-23T19:29:55.142378+00:00 app[web.1]:  % '", "'.join(lib_names) 
2017-09-23T19:29:55.142414+00:00 app[web.1]: 
django.core.exceptions.ImproperlyConfigured: Could not find the GDAL 
library (tried "gdal", "GDAL", "gdal2.1.0", "gdal2.0.0", "gdal1.11.0", 
"gdal1.10.0", "gdal1.9.0"). Is GDAL installed? If it is, try setting 
GDAL_LIBRARY_PATH in your settings. 

Voici mes exigences.txt:

dj-database-url==0.4.1 
Django==1.11.5 
gunicorn==19.6.0 
psycopg2==2.6.2 
pytz==2017.2 
whitenoise==3.2 

La seule anomalie que j'ai ici est que j'utilise Django 1.11.5 au lieu de ce qui était par défaut avec le modèle de projet Django de Heroku, qui est 1.11.1. Cela consistait à résoudre un problème qui empêchait le projet de fonctionner corrigé.

Procfile est:

web: gunicorn tagging_tracker_backend.wsgi 

runtime.txt est:

python-3.6.2 

Le repo Github est au lien this.

Répondre