1
resposta

Erro ao rodar import cv2

ao rodar o comando import cv2 recebo o erro abaixo:

Defaulting to user installation because normal site-packages is not writeable
Collecting numpy==1.22.3
  Using cached numpy-1.22.3.zip (11.5 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'error'
  error: subprocess-exited-with-error
  
  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [32 lines of output]
      Traceback (most recent call last):
        File [35m"C:\ProgramData\anaconda3\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py"[0m, line [35m389[0m, in [35m<module>[0m
          [31mmain[0m[1;31m()[0m
          [31m~~~~[0m[1;31m^^[0m
        File [35m"C:\ProgramData\anaconda3\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py"[0m, line [35m373[0m, in [35mmain[0m
          json_out["return_val"] = [31mhook[0m[1;31m(**hook_input["kwargs"])[0m
                                   [31m~~~~[0m[1;31m^^^^^^^^^^^^^^^^^^^^^^^^[0m
        File [35m"C:\ProgramData\anaconda3\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py"[0m, line [35m137[0m, in [35mget_requires_for_build_wheel[0m
          backend = _build_backend()
        File [35m"C:\ProgramData\anaconda3\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py"[0m, line [35m70[0m, in [35m_build_backend[0m
          obj = import_module(mod_path)
        File [35m"C:\ProgramData\anaconda3\Lib\importlib\__init__.py"[0m, line [35m88[0m, in [35mimport_module[0m
          return [31m_bootstrap._gcd_import[0m[1;31m(name[level:], package, level)[0m
                 [31m~~~~~~~~~~~~~~~~~~~~~~[0m[1;31m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^[0m
        File [35m"<frozen importlib._bootstrap>"[0m, line [35m1387[0m, in [35m_gcd_import[0m
        File [35m"<frozen importlib._bootstrap>"[0m, line [35m1360[0m, in [35m_find_and_load[0m
        File [35m"<frozen importlib._bootstrap>"[0m, line [35m1310[0m, in [35m_find_and_load_unlocked[0m
        File [35m"<frozen importlib._bootstrap>"[0m, line [35m488[0m, in [35m_call_with_frames_removed[0m
        File [35m"<frozen importlib._bootstrap>"[0m, line [35m1387[0m, in [35m_gcd_import[0m
        File [35m"<frozen importlib._bootstrap>"[0m, line [35m1360[0m, in [35m_find_and_load[0m
        File [35m"<frozen importlib._bootstrap>"[0m, line [35m1331[0m, in [35m_find_and_load_unlocked[0m
        File [35m"<frozen importlib._bootstrap>"[0m, line [35m935[0m, in [35m_load_unlocked[0m
        File [35m"<frozen importlib._bootstrap_external>"[0m, line [35m1027[0m, in [35mexec_module[0m
        File [35m"<frozen importlib._bootstrap>"[0m, line [35m488[0m, in [35m_call_with_frames_removed[0m
        File [35m"C:\Users\pcIgor\AppData\Local\Temp\pip-build-env-vq58k421\overlay\Lib\site-packages\setuptools\__init__.py"[0m, line [35m16[0m, in [35m<module>[0m
          import setuptools.version
        File [35m"C:\Users\pcIgor\AppData\Local\Temp\pip-build-env-vq58k421\overlay\Lib\site-packages\setuptools\version.py"[0m, line [35m1[0m, in [35m<module>[0m
          import pkg_resources
        File [35m"C:\Users\pcIgor\AppData\Local\Temp\pip-build-env-vq58k421\overlay\Lib\site-packages\pkg_resources\__init__.py"[0m, line [35m2172[0m, in [35m<module>[0m
          register_finder([1;31mpkgutil.ImpImporter[0m, find_on_path)
                          [1;31m^^^^^^^^^^^^^^^^^^^[0m
      [1;35mAttributeError[0m: [35mmodule 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?[0m
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed to build 'numpy' when getting requirements to build wheel
1 resposta

Ei, Igor! Tudo bem?

O erro que você está recebendo está relacionado a uma falha na construção do pacote numpy, que é uma dependência do OpenCV. Fiz o teste aqui e obtive o mesmo erro, consegui resolver da seguinte forma:

  • Vai ao menu superior do Google Colab, selecione Ambiente de execução, depois, Reiniciar a sessão.
  • NÃO EXECUTE NENHUMA CÉLULA DE CÓDIGO NESTE MOMENTO.
  • Rode o seguinte comando abaixo:
pip install "numpy<2"

Esse código, força a instalação de uma versão do NumPy anterior à 2.0, evitando erros de incompatibilidade entre NumPy 2.x e bibliotecas nativas.

  • Durante a instalação aparecerá uma janela, semelhante a imagem abaixo, clique em Reiniciar a sessão:

Se não reiniciar, o NumPy antigo não é carregado.

  • Agora instale as libs:
pip install mediapipe==0.10.31 opencv-python==4.9.0.80
  • Depois, rode os imports:
import cv2
import mediapipe as mp
import numpy as np
  • Para saber a versão de cada uma, rode o código abaixo:
print("NumPy:", np.__version__)
print("OpenCV:", cv2.__version__)
print("MediaPipe:", mp.__version__)

Pronto, o seu import será executado sem problemas. Deixo o link do notebook que usei para teste logo abaixo:

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!