1
resposta

[Dúvida] Erro ao instalar o psycopg2 no python 3.11 no Windows

Olá pessoal, estou com problemas para instalar o psycopg2 no Python 3.11 que saiu recentemente, alguém consegue me dar um help? Estava seguindo o curso de Django e ao tentar realizar a instalação do psycopg2 eu obtive esse erro abaixo:

C:\curso_django_alura\alura-receitas> pip install psycopg2
Collecting psycopg2
  Using cached psycopg2-2.9.5.tar.gz (384 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [53 lines of output]
      C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\config\setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
        warnings.warn(msg, warning_class)
      running egg_info
      creating C:\Users\victo\AppData\Local\Temp\pip-pip-egg-info-c7h3_lpi\psycopg2.egg-info
      writing C:\Users\victo\AppData\Local\Temp\pip-pip-egg-info-c7h3_lpi\psycopg2.egg-info\PKG-INFO
      writing dependency_links to C:\Users\victo\AppData\Local\Temp\pip-pip-egg-info-c7h3_lpi\psycopg2.egg-info\dependency_links.txt
      writing top-level names to C:\Users\victo\AppData\Local\Temp\pip-pip-egg-info-c7h3_lpi\psycopg2.egg-info\top_level.txt
      writing manifest file 'C:\Users\victo\AppData\Local\Temp\pip-pip-egg-info-c7h3_lpi\psycopg2.egg-info\SOURCES.txt'
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "C:\Users\victo\AppData\Local\Temp\pip-install-fd7j_r54\psycopg2_12f62287bf17430380f5e6cb79b4a0fb\setup.py", line 550, in <module>
          setup(name="psycopg2",
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\__init__.py", line 87, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\_distutils\core.py", line 185, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\_distutils\core.py", line 201, in run_commands
          dist.run_commands()
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\_distutils\dist.py", line 968, in run_commands
          self.run_command(cmd)
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\dist.py", line 1217, in run_command
          super().run_command(command)
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\_distutils\dist.py", line 987, in run_command
          cmd_obj.run()
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\command\egg_info.py", line 308, in run
          self.find_sources()
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\command\egg_info.py", line 316, in find_sources
          mm.run()
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\command\egg_info.py", line 560, in run
          self.add_defaults()
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\command\egg_info.py", line 597, in add_defaults
          sdist.add_defaults(self)
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\command\sdist.py", line 106, in add_defaults
          super().add_defaults()
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\_distutils\command\sdist.py", line 252, in add_defaults
          self._add_defaults_ext()
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\_distutils\command\sdist.py", line 336, in _add_defaults_ext
          build_ext = self.get_finalized_command('build_ext')
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\_distutils\cmd.py", line 306, in get_finalized_command
          cmd_obj.ensure_finalized()
        File "C:\curso_django_alura\alura-receitas\venv\Lib\site-packages\setuptools\_distutils\cmd.py", line 109, in ensure_finalized
          self.finalize_options()
        File "C:\Users\victo\AppData\Local\Temp\pip-install-fd7j_r54\psycopg2_12f62287bf17430380f5e6cb79b4a0fb\setup.py", line 382, in finalize_options
          for token in pg_config_helper.query("ldflags").split():
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\victo\AppData\Local\Temp\pip-install-fd7j_r54\psycopg2_12f62287bf17430380f5e6cb79b4a0fb\setup.py", line 125, in query
          result = result.decode('ascii')
      UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 1: ordinal not in range(128)
      [end of output]
1 resposta

Oi, Victor, tudo bem?

Peço desculpas pelo tempo que aguardou por uma resposta.

Para contornar esse problema (relacionado à codificação), você pode instalar uma versão pré-compilada do Psycopg.

Abaixo, estarei deixando um site com versões do Psycopg indo do Python 2.7 até o Python 3.11:

Observe a lista de arquivos e clique sobre aquela que apresenta a versão do seu Python e a arquitetura do seu computador. Como exemplo, selecionei esta (Python 3.11 e arquitetura de 64 bits):

Lista de links para download do psycopg

Feito isso, adicione o arquivo baixado à pasta do seu projeto e execute o seguinte comando no terminal:

pip install arquivo_baixado

Em arquivo_baixado, substitua pelo nome completo (com extensão) do arquivo que você acabou de baixar e adicionar à pasta do projeto, chegando em um comando parecido com este:

pip install psycopg2-2.9.3-cp311-cp311-win_amd64.whl

Feito isso, o Psycopg será instalado sem erros. No entanto, caso algum outro problema aconteça, Victor, estarei aqui para te ajudar!

Abraços.

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