Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

233
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda