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

336
Vistas
Python ModuleNotFoundError al importar un módulo en conftest para el marco Pytest

La estructura de mi proyecto

 mt-kart | --> src/data_kart | | | -->apis | | | -->__init__.py | | | -->main.py --> tests | -->__init__.py | -->conftest.py | -->test_others.py

conftest.py tiene la siguiente línea.

from data_kart.main import fastapi_app

Cuando ejecute pytest desde la línea de comando desde la raíz del proyecto (mt-kart). Obtuve el siguiente error

ModuleNotFoundError No module named 'data_kart'

Cómo hacer que data_kart sea visible para conftest.py .

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Opción 1

Usar importaciones relativas:

 from ..src.data_kart.main import fastapi_app fastapi_app()

Tenga en cuenta que lo anterior requiere ejecutar conftest.py fuera del directorio del proyecto, así:

 python -m mt-kart.tests.conftest

opcion 2

Use lo siguiente en conftest.py ( ref ):

 import sys import os # getting the name of the directory where the this file is present. current = os.path.dirname(os.path.realpath(__file__)) # Getting the parent directory name where the current directory is present. parent = os.path.dirname(current) # adding the parent directory to the sys.path. sys.path.append(parent) # import the module from src.data_kart.main import fastapi_app # call the function fastapi_app()

Y si sucede que un módulo está fuera del directorio principal de tests , entonces puede obtener el directorio principal del directorio principal y agregarlo a sys.path . Por ejemplo:

 parentparent = os.path.dirname(parent) sys.path.append(parentparent)

Opción 3

Igual que la Opción 2, pero más corto.

 import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) from src.data_kart.main import fastapi_app fastapi_app()

Opción 4

Las opciones 2 y 3 funcionarían para proyectos más pequeños, donde solo se necesita actualizar un par de archivos con el código anterior. Sin embargo, para proyectos más grandes, puede considerar incluir el directorio que contiene el directorio de su paquete en PYTHONPATH , como se describe aquí (Opción 3).

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