Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

240
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!