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

563
Visualizações
¿Cómo importar un módulo desde una carpeta diferente?

Tengo un proyecto que quiero estructurar así:

 myproject __init__.py api __init__.py api.py backend __init__.py backend.py models __init__.py some_model.py

Ahora, quiero importar el módulo some_model.py tanto en api.py como en backend.py . ¿Cómo hago esto correctamente?

Lo intenté:

 from models import some_model

pero eso falla con ModuleNotFoundError: No module named 'models' .

También probé:

 from ..models import some_model

lo que me dio ValueError: attempted relative import beyond top-level package .

¿Qué estoy haciendo mal aquí? ¿Cómo puedo importar un archivo de un directorio diferente, que no es un subdirectorio?

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

0

En primer lugar, esta declaración de importación:

 from models import some_model

debe tener un espacio de nombres:

 # in myproject/backend/backend.py or myproject/api/api.py from myproject.models import some_model

Luego, deberá obtener el directorio que contiene myproject , llamemos a este /path/to/parent , en la lista sys.path . Puede hacer esto temporalmente configurando una variable de entorno:

 export PYTHONPATH=/path/to/parent

O, preferiblemente, puede hacerlo escribiendo un archivo setup.py e instalando su paquete. Siga la guía de embalaje de PyPA . Después de haber escrito su archivo setup.py , desde el mismo directorio, ejecute esto para configurar las entradas correctas en sys.path :

 pip install --editable .
over 4 years ago · Santiago Trujillo Relatório

0

Desafortunadamente, Python solo encontrará su archivo si su archivo está en la ruta del sistema. ¡Pero no temas! ¡Hay una manera de evitar esto!

Usando el módulo sys de python, podemos agregar un directorio a la ruta justo mientras Python se está ejecutando, y una vez que Python deje de ejecutarse, lo eliminará de la ruta.

Puedes hacer esto por:

 import sys sys.path.insert(0, '/path/to/application/app/folder') import [file]

Sin embargo, es importante importar sys y configurar la ruta del directorio antes de importar el archivo.

¡Buena suerte!

Jordán.

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