Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

241
Visualizações
mypy No se puede encontrar la implementación o el código auxiliar de la biblioteca para el módulo

Tengo:

 foo/ ├── __init__.py ├── bar.py └── baz ├── __init__.py └── alice.py

En bar.py , importo Alice, que es una clase vacía sin nada más que el atributo de name establecido en "Alice" .

 from baz.alice import Alice a = Alice() print(a.name)

Esto funciona correctamente:

 $ python foo/bar.py Alice

Pero mypy se queja:

 $ mypy --version mypy 0.910 $ mypy --strict . foo/bar.py:1: error: Cannot find implementation or library stub for module named "baz.alice" foo/bar.py:1: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports Found 1 error in 1 file (checked 6 source files)

¿Por qué Mypy se queja?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

mypy tiene su propia ruta de búsqueda para importaciones y no resuelve las importaciones exactamente como lo hace Python y no puede encontrar el módulo baz.alice . Consulte la documentación que aparece en el mensaje de error, específicamente la sección Cómo se encuentran las importaciones:

Las reglas para buscar un módulo foo son las siguientes:

La búsqueda busca en cada uno de los directorios en la ruta de búsqueda (ver arriba) hasta que se encuentra una coincidencia.

  1. Si se encuentra un paquete llamado foo (es decir, un directorio foo que contiene un __init__.py o __init__.pyi ), es una coincidencia.
  2. Si se encuentra un archivo auxiliar llamado foo.pyi , es una coincidencia.
  3. Si se encuentra un módulo de Python llamado foo.py , es una coincidencia.

La documentación también establece que esto en la sección sobre Asignación de rutas de archivos a módulos :

Para cada archivo a verificar, mypy intentará asociar el archivo (p. ej project/foo/bar/baz.py ) con un nombre de módulo completo (p. ej., foo.bar.baz ).

Hay algunas maneras de resolver este problema en particular:

  1. Como mencionó paul41 en su comentario, una opción para resolver este problema es proporcionar la importación completa ( from foo.baz.alice import Alice ) y luego ejecutar desde un módulo de nivel superior (un archivo .py en el nivel raíz) .
  2. Puede agregar un # type: ignore a la línea de importación.
  3. Puede editar la variable MYPYPATH para que apunte al directorio foo :
 (venv) (base) ➜ mypy foo/bar.py --strict foo/bar.py:3: error: Cannot find implementation or library stub for module named "baz.alice" foo/bar.py:3: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports Found 1 error in 1 file (checked 1 source file) (venv) (base) ➜ export MYPYPATH=foo/ (venv) (base) ➜ mypy foo/bar.py --strict Success: no issues found in 1 source file
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda