En este artículo, aprenderemos cómo importar un módulo desde el directorio principal. Desde Python 3.3, no se permite hacer referencia o importar un módulo en el directorio principal. En el siguiente ejemplo se puede entender claramente esto.
En el directorio principal, tenemos un subdirectorio, el archivo geeks.py y en el subdirectorio, tenemos un archivo de Python llamado temp.py. Ahora intentemos si podemos importar el módulo geeks en el directorio principal desde el archivo temp.py en el subdirectorio.
geeks.py (módulo en el directorio principal)
Python3
procesamiento de datos
def> geek_method():> >print>(>'This method in geeks module.......bye'>)> |
>
>
temp.py (archivo Python en el subdirectorio)
Python3
# importing the module in> # parent directory> from> parentdirectory>import> geeks> # calling the func1() method> # from geeks module> geeks.geek_method()> |
>
java para tipos de bucle
>
Como comentamos anteriormente, no es posible importar un módulo desde el directorio principal, por lo que esto genera un error como este.
Rastreo (llamadas recientes más última):
Archivo C:/Users/sai mohan pulamolu/Desktop/parentdirectory/subdirectory/temp.py, línea 2, en
de los geeks de importación del directorio principal
ModuleNotFoundError: ningún módulo llamado 'directorio principal'
Ahora aprendamos cómo importar un módulo desde el directorio de padres:
Para importar un módulo, el directorio que tiene ese módulo debe estar presente en PYTHONPATH. Es una variable de entorno que contiene la lista de paquetes que Python cargará. La lista de paquetes presentes en PYTHONPATH también está presente en sys.path, por lo que agregará la ruta del directorio principal al ruta.sys.
Para nuestro trabajo, utilizamos tres enfoques diferentes que se explican a continuación con la ayuda de ejemplos.
Método 1: importar desde el directorio principal utilizando el método sys.path
Aquí usaremos el módulo sys y estableceremos la ruta directamente al módulo requerido.
Agregue el directorio principal al ruta.sys utilizando el adjuntar() método . Es una función incorporada del módulo sys que se puede usar con una variable de ruta para agregar una ruta específica para que la busquen los intérpretes. El siguiente ejemplo muestra cómo se puede hacer esto.
Python3
aleatorio en c
import> sys> # setting path> sys.path.append(>'../parentdirectory'>)> # importing> from> parentdirectory.geeks>import> geek_method> # using> geek_method()> |
>
>
Producción:
This method in geeks module.......bye>
Método 2: importar desde el directorio principal usando método os.path.abspath()
Aquí usaremos el módulo sys así como el módulo de ruta para obtener el directorio y establecer la ruta directamente al módulo requerido.
Sintaxis: os.ruta.abspath(ruta)
Parámetro:
Camino: Un objeto similar a una ruta que representa una ruta del sistema de archivos.Tipo de devolución: Este método devuelve una versión normalizada de la ruta del nombre de ruta.
En primer lugar, obtendremos el nombre del directorio donde se encuentra actualmente el archivo temp.py usando path.path(__file__). abspath(), en segundo lugar agregue el directorio al ruta.sys .append para verificar, usaremos su método.
Python3
import> path> import> sys> # directory reach> directory>=> path.path(__file__).abspath()> # setting path> sys.path.append(directory.parent.parent)> # importing> from> parentdirectory.geeks>import> geek_method> # using> geek_method()> |
>
operador java
>
Producción:
This method in geeks module.......bye>
Método 3: importar desde el directorio principal usando os.ruta.dirname método
Aquí usaremos el módulo sys y el módulo os para obtener el directorio (tanto el actual como el principal) y estableceremos la ruta directamente al módulo requerido.
Sintaxis: os.path.dirname(ruta)
Parámetro:
camino : un objeto similar a una ruta que representa una ruta del sistema de archivos.Tipo de devolución: Este método devuelve un valor de cadena que representa el nombre del directorio de la ruta especificada.
la sonrisa más hermosa del mundo
En primer lugar, obtendremos el directorio actual usando os.path.dirname (os.path.realpath(__file__)), en segundo lugar, obtendremos el directorio principal usando os.path.dirname(), finalmente, agregaremos el directorio principal. directorio al ruta.sys Para comprobarlo, usaremos su método.
Python3
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)> # now we can import the module in the parent> # directory.> import> geeks> geeks.geek_method()> |
>
>
Producción:
