importación relativa de python

Puede importar paquetes relativamente dentro de un proyecto de Python. Si comete un error al importar un paquete relativamente, encontrará el error más allá del nivel superior del paquete en la importaciòn relativa .

En esta guìa, estamos vamos a discutir qué significa este error y por qué se plantea. Veremos un ejemplo de este error para ayudarlo a aprender còmo escribir con éxito una declaraciòn de importaciòn relativa en su proyecto.

más allá del error de paquete de nivel superior en la importaciòn relativa

Un relativo import usa el nombre de un mòdulo para determinar su ubicaciòn.

Considere la siguiente importaciòn relativa:

Esto importará la " aplicaciòn " mòdulo Python del directorio que se encuentra arriba de la carpeta en la que está escrito el programa con esta declaraciòn de importaciòn.

Digamos que este archivo se llamò " program.py " y estaba contenido en una carpeta llamada " aplicaciòn & rdquo ;. Nuestro proyecto principal se llama " cake & rdquo ;. Nuestra estructura de archivos se verìa asì:

Cuando ejecutamos el " program.py " , Python ve nuestra declaraciòn de importaciòn como:

Importamos desde el " programa " carpeta en lugar de nuestro directorio de trabajo actual (la carpeta que estamos viendo).

El 81% de los participantes afirmaron que se sentìan más seguros sobre sus perspectivas laborales después de asistir a un bootcamp. Asòciese a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasò menos de seis meses en la transiciòn profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Esto se debe a que " program & rdquo ; está dos directorios detrás del que estamos viendo. Los archivos __init__.py le dicen a Python que estamos trabajando con nuestros propios paquetes de Python. Este archivo está vacìo en ambos casos.

Sus programas deben usar esta estructura; de lo contrario, encontrará un error.

Un escenario de ejemplo

Tenemos un proyecto llamado " cake " que imprime la declaraciòn "¬°Me gusta el pastel!" a la consola. Este proyecto se va a volver más complicado, asì que usaremos mòdulos para dividir nuestro còdigo.

La estructura de archivo de nuestro proyecto se ve asì:

Todo este còdigo está en una carpeta llamada " cake & rdquo ;. Dentro de nuestro archivo app.py, tenemos una declaraciòn que importa nuestro archivo program.py:

Esta es una declaraciòn de importaciòn estándar. Dentro del archivo app / program.py, tenemos una declaraciòn de importaciòn relativa:

Este còdigo importa el archivo " impresora " desde el directorio arriba de la aplicaciòn /. El directorio de arriba de la aplicaciòn / es el directorio principal de ou r proyecto. & nbsp;

Nuestro archivo printer.py contiene una declaraciòn de impresiòn :

Vamos a " s intente ejecutar nuestro programa para ver si funciona. Vamos a ejecutar nuestro archivo app.py porque es el archivo principal de nuestro proyecto:

Cuando ejecutamos este archivo, vemos el siguiente mensaje:

Nuestro archivo program.py no puede importar nuestra " impresora " mòdulo.

La soluciòn

Estamos intentando importar " impresora " en nuestro " app.program " expediente. Esto es un problema porque " impresora " en sì mismo no está en un paquete. Las importaciones relativas solo funcionan dentro de los paquetes.

Para resolver este problema, necesitamos cambiar la estructura de directorios de nuestro proyecto. Necesitamos agregar nuestra " impresora " archivo y nuestra " aplicaciòn " carpeta en su propio directorio para que " impresora " está en un paquete. Esto nos permitirá hacer referencia a nuestra "impresora". archivo en la " aplicaciòn " carpeta.

Podemos mantener nuestro archivo app.py en su directorio actual porque hará referencia a nuestros subdirectorios.

Muevamos todos nuestros archivos, excluyendo app.py, en una nueva carpeta:

Todos los archivos de nuestro proyecto, además de app.py, están en una nueva carpeta llamada " cake & rdquo ;. Necesitamos modificar nuestro archivo app.py para que hagamos referencia a " cake " mòdulo:

Esto importará el " programa " archivo que se encuentra en el directorio cake / app.

Ahora que nuestro archivo printer.py está en su propio paquete, deberìamos poder ejecutar correctamente nuestro proyecto. program.py deberìa poder acceder a printer.py porque ambos archivos están en un paquete.

"Career Karma entrò en mi vida cuando más lo necesitaba y rápidamente me ayudò a combinar con un bootcamp. ¬°Dos meses después de graduarme, encontré el trabajo de mis sue√±os que se alineaba con mis valores y metas en la vida! "

Venus, ingeniero de software en Rockbot

Ejecutemos nuestro còdigo y veamos qué pasa:

Nuestro programa imprime correctamente el mensaje "¬°Me gusta el pastel!" en la consola. Este mensaje está definido en printer.py, como mencionamos anteriormente.

Esto nos dice que nuestro archivo program.py pudo importar exitosamente el archivo printer.py. Cuando importamos el archivo, su contenido fue ejecutado.

Conclusiòn

La < còdigo> más allá del nivel superior error de paquete en la importaciòn relativa se produce un error cuando utiliza una importaciòn relativa sin que el archivo que está importando sea parte de un paquete. Para corregir este error, aseg√∫rese de que los directorios que importe relativamente estén en sus propios paquetes.

Ahora tiene los recursos que necesita para ¬°Viva este error com√∫n de Python como un profesional !

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method