Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot debug error message for psycopg2 with django and postgreSQL

I am trying to create a postgreSQL database connected to a django web app using psycopg2. I am recieving the following error when I run python manage.py migrate

(temp-python) ❯ python manage.py migrate
Traceback (most recent call last):
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/db/backends/postgresql/base.py", line 20, in <module>
    import psycopg2 as Database
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/psycopg2/__init__.py", line 50, in <module>
    from psycopg2._psycopg import (                     # noqa
ImportError: ~/git-repos/MyApp/temp-python/lib/python3.4/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 "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/core/management/__init__.py", line 341, in execute
    django.setup()
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/apps/config.py", line 199, in import_models
    self.models_module = import_module(models_module_name)
  File "~/git-repos/MyApp/temp-python/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "~/git-repos/MyApp/connecting/models.py", line 2, in <module>
    from django.contrib.auth.models import User
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/contrib/auth/models.py", line 4, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/contrib/auth/base_user.py", line 52, in <module>
    class AbstractBaseUser(models.Model):
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/db/models/base.py", line 119, in __new__
    new_class.add_to_class('_meta', Options(meta, app_label))
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/db/models/base.py", line 316, in add_to_class
    value.contribute_to_class(cls, name)
  File "~/git-repos/MyApp/temp-python/lib/python3.4/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 "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/db/__init__.py", line 33, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/db/utils.py", line 211, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/db/utils.py", line 115, in load_backend
    return import_module('%s.base' % backend_name)
  File "~/git-repos/MyApp/temp-python/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "~/git-repos/MyApp/temp-python/lib/python3.4/site-packages/django/db/backends/postgresql/base.py", line 24, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: ~/git-repos/MyApp/temp-python/lib/python3.4/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

I'm running arch linux and don't really know where to begin with debugging this error, thanks in advance for any help.

like image 838
James Tait Avatar asked Nov 13 '17 19:11

James Tait


People also ask

How do you handle psycopg2 error?

In the psycopg2 adapter library you can return the code by accessing the exception's pgcode attribute. It should be an alpha-numeric string, five characters in length, that corresponds to an exception in the PostgreSQL Error Codes table.

Does psycopg2 need PostgreSQL?

Prerequisites. The current psycopg2 implementation supports: Python versions from 3.6 to 3.11. PostgreSQL server versions from 7.4 to 15.

What is psycopg2 in Django?

Project description Psycopg is the most popular PostgreSQL database adapter for the Python programming language. Its main features are the complete implementation of the Python DB API 2.0 specification and the thread safety (several threads can share the same connection).


1 Answers

There was a known bug on psycopg2 versions prior to 2.2.

That gives you the option of either restarting it, as it may be a runtime problem, or alternatively you can reinstall using the --no-binary psycopg2 command, which will prevent it using the wheel, per the last comment in that thread.

like image 160
Withnail Avatar answered Oct 07 '22 03:10

Withnail