datosgobar / georef-ar-etl

ETL del Servicio de Normalización de Datos Geográficos de Argentina.
https://apis.datos.gob.ar/georef
MIT License
7 stars 4 forks source link

Error con pyscopg2 al ejecutar make all #128

Closed aleher86 closed 5 years ago

aleher86 commented 5 years ago

Hola, buen día. Había estado en el taller que hubo en la pyconar. Intenté descargar los datos como dice el instrutivo, y luego de crear las bases de datos y configurar todo, al ejecutar make all se genera los siguientes errores.

/home/alejandro/Documentos/trabajo/georef-ar-etl/environment.sh && /home/alejandro/Documentos/trabajo/georef-ar-etl/venv/bin/python3.6 /home/alejandro/Documentos/trabajo/georef-ar-etl/manage.py migrate Traceback (most recent call last): File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 20, in import psycopg2 as Database File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/psycopg2/init.py", line 50, in from psycopg2._psycopg import ( # noqa ImportError: /home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/psycopg2/.libs/libresolv-2-c4c53def.5.so: symbol __res_maybe_init version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference

During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/alejandro/Documentos/trabajo/georef-ar-etl/manage.py", line 22, in execute_from_command_line(sys.argv) File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/core/management/init.py", line 367, in execute_from_command_line utility.execute() File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/core/management/init.py", line 341, in execute django.setup() File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/init.py", line 27, in setup apps.populate(settings.INSTALLED_APPS) File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/apps/registry.py", line 108, in populate app_config.import_models(all_models) File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/apps/config.py", line 199, in import_models self.models_module = import_module(models_module_name) File "/usr/lib/python3.6/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 994, in _gcd_import File "", line 971, in _find_and_load File "", line 955, in _find_and_load_unlocked File "", line 665, in _load_unlocked File "", line 678, in exec_module File "", line 219, in _call_with_frames_removed File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/contrib/auth/models.py", line 4, in from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/contrib/auth/base_user.py", line 52, in class AbstractBaseUser(models.Model): File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/db/models/base.py", line 119, in new new_class.add_to_class('_meta', Options(meta, app_label)) File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/db/models/base.py", line 316, in add_to_class value.contribute_to_class(cls, name) File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/db/models/options.py", line 214, in contribute_to_class self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/db/init.py", line 33, in getattr return getattr(connections[DEFAULT_DB_ALIAS], item) File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/db/utils.py", line 211, in getitem backend = load_backend(db['ENGINE']) File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/db/utils.py", line 115, in load_backend return import_module('%s.base' % backend_name) File "/usr/lib/python3.6/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/contrib/gis/db/backends/postgis/base.py", line 2, in from django.db.backends.postgresql.base import \ File "/home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 24, in raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: /home/alejandro/Documentos/trabajo/georef-ar-etl/venv/lib/python3.6/site-packages/psycopg2/.libs/libresolv-2-c4c53def.5.so: symbol __res_maybe_init version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference Makefile:56: recipe for target 'migrate_db' failed make: *** [migrate_db] Error 1

Por lo que logré ver se da al importar psycopg2. Puede que haya un problema con las librerias que hay en el repositorio?

El sistema operativo es ubuntu 18.04. Tengo instalado en global la libreria psycopg2 y no me da error, pero cuando se usa en el entorno de esta aplicación falla.

federicotdn commented 5 years ago

Hola @aleher86, es cierto, parece estar relacionado al import de psycopg2. Con el entorno del ETL activado, probá actualizar la librería:

$ pip install psycopg2 --upgrade

Si te funciona entonces quizás sea necesario que nosotros actualicemos la versión que usamos.

aleher86 commented 5 years ago

Hola @aleher86, es cierto, parece estar relacionado al import de psycopg2. Con el entorno del ETL activado, probá actualizar la librería:

$ pip install psycopg2 --upgrade

Si te funciona entonces quizás sea necesario que nosotros actualicemos la versión que usamos.

Hola. Volví a actualizar la librería y me sigue generando el mismo importError. Intenté hacer todo de nuevo clonando el repositorio por las dudas, pero el problema persiste.

mcardozo commented 5 years ago

Hola @aleher86,

a mi me paso algo similar con ubuntu 18.04 el cual viene por defecto con PostgreSQL 10. La solución que le encontré fue utilizar otra versión de la librería psycopg2 y django respectivamente.

Reemplazá en el archivo requirements.txt con lo siguiente:

Django==1.11.5
django-extensions==1.8.1
psycopg2==2.7.3.2
geojson==2.3.0

Si te funcioná avisanos, gracias.

aleher86 commented 5 years ago

Ahora sí funciona. Muchas gracias por la ayuda.

Saludos!