1
resposta

Django não funciona quando instalo o psycopg2

Boa Tarde!

Estou com o seguinte erro no meu projeto. Já desinstalei e instalei o pacote diversas vezes. Já criei uma nova env pra ver se solucionaria o problema, mas não consegui. Se alguém souber de uma solução que realmente funcione agradeço.

  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\models\base.py", line 
141, in __new__
    new_class.add_to_class("_meta", Options(meta, app_label))
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\models\base.py", line 
369, in add_to_class
    value.contribute_to_class(cls, name)
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\models\options.py", line 235, in contribute_to_class
    self.db_table, connection.ops.max_name_length()
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\connection.py", line 15, in __getattr__
    return getattr(self._connections[self._alias], item)
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\connection.py", line 62, in __getitem__
    conn = self.create_connection(alias)
  File "C:\User\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\utils.py", line 208, in create_connection
    backend = load_backend(db["ENGINE"])
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\utils.py", line 113, in load_backend
    return import_module("%s.base" % backend_name)
  File "C:\Users\AppData\Local\Programs\Python\Python310\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\Gabriela\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\backends\postgresql\base.py", line 28, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2'

Consegui fazer a interação com o banco, mas o servidor não carrega mais. Aparece o erro acima e não sei como resolver. Parece que é o django que não é compatível.

    Package           Version
----------------- -------
asgiref           3.5.2
astroid           2.11.6
colorama          0.4.5
dill              0.3.5.1
dj-database-url   0.5.0
Django            4.0.5
isort             5.10.1
lazy-object-proxy 1.7.1
mccabe            0.7.0
pip               22.1.2
platformdirs      2.5.2
postgres          4.0
psycopg2          2.9.3
psycopg2-binary   2.9.3
setuptools        58.1.0
sqlparse          0.4.2
tomli             2.0.1
tomlkit           0.11.0
tzdata            2022.1
whitenoise        6.2.0
wrapt             1.14.1
1 resposta

Olá, tudo bem com você?

Peço desculpas pela demora no retorno.

O erro apresentado (ImproperlyConfigured), está sendo levantado devido o Django não reconhecer a instalação do módulo. Como você já realizou a desinstalação e instalação do módulo e o erro persiste. Um ponto que podemos realizar um teste é informar qual versão do psycopg2 deve ser carregada pelo PostgreSQL.

Para isso, acesse o arquivo setting.py, localize a constante DATABASES, no valor da chave 'ENGINE' iremos adicionar ao seu final a seguinte expressão _psycopg2. A chave 'ENGINE' deve está conforme apresentado abaixo.

'ENGINE': 'django.db.backends.postgresql_psycopg2'

Modifique o ponto proposto acima, e inicie o servidor com python manage.py runserver.

Peço que teste o proposto acima, caso o erro persista encontro-me à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!