I denne artikel lærer vi, hvordan du importerer et modul fra det overordnede bibliotek. Fra Python 3.3 er det ikke tilladt at henvise til eller importere et modul i den overordnede mappe. Fra nedenstående eksempel kan du tydeligt forstå dette.
I det overordnede bibliotek har vi en undermappe, geeks.py-filen og i undermappen, har vi en python-fil ved navn temp.py. Lad os nu prøve, om vi kan importere geeks-modulet i det overordnede bibliotek fra temp.py-filen i underbiblioteket.
geeks.py (modul i det overordnede bibliotek)
Python3
reaktionstabel
def> geek_method():> >print>(>'This method in geeks module.......bye'>)> |
>
>
temp.py (python-fil i undermappe)
Python3
strengbygger
# importing the module in> # parent directory> from> parentdirectory>import> geeks> # calling the func1() method> # from geeks module> geeks.geek_method()> |
>
>
Som vi har diskuteret tidligere, er det ikke muligt at importere et modul fra det overordnede bibliotek, så dette fører til en fejl, noget som dette.
Sporing (seneste opkald sidst):
Fil C:/Users/sai mohan pulamolu/Desktop/parentdirectory/subdirectory/temp.py, linje 2, i
fra parentdirectory import nørder
ModuleNotFoundError: Intet modul med navnet 'parentdirectory'
Lad os nu lære, hvordan du importerer et modul fra overordnet mappe:
For at kunne importere et modul, skal biblioteket med dette modul være til stede på PYTHONPATH. Det er en miljøvariabel, der indeholder listen over pakker, der vil blive indlæst af Python. Listen over pakker, der findes i PYTHONPATH er også til stede i sys.path, så vil tilføje den overordnede mappesti til sys.sti.
Til vores arbejde anvender vi tre forskellige tilgange, som forklares nedenfor ved hjælp af eksempler.
Metode 1: Importer fra overordnet bibliotek ved hjælp af sys.path-metoden
Her vil vi bruge sys-modulet og sætte stien direkte til det ønskede modul.
Tilføj den overordnede mappe til sys.sti bruger Tilføj() metode . Det er en indbygget funktion i sys-modulet, der kan bruges med en stivariabel til at tilføje en specifik sti, som tolke kan søge. Følgende eksempel viser, hvordan dette kan gøres.
Python3
maskinlæringsmodeller
import> sys> # setting path> sys.path.append(>'../parentdirectory'>)> # importing> from> parentdirectory.geeks>import> geek_method> # using> geek_method()> |
>
>
Produktion:
This method in geeks module.......bye>
Metode 2: Importer fra overordnet mappe ved hjælp af os.path.abspath() metode
Her vil vi bruge sys-modulet samt sti-modulet til at hente mappen og sætte stien direkte til det ønskede modul.
Syntaks: os.path.abspath(sti)
Parameter:
Sti: Et stilignende objekt, der repræsenterer en filsystemsti.Returtype: Denne metode returnerer en normaliseret version af stinavnstien.
Først vil vi få navnet på den mappe, hvor temp.py-filen i øjeblikket bruger path.path(__file__). abspath(), føje for det andet mappen til sys.sti .tilføj til check, vil vi bruge dens metode.
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()> |
romertal 1-100
>
>
Produktion:
This method in geeks module.......bye>
Metode 3: Importer fra overordnet mappe ved hjælp af os.sti.dirnavn metode
Her vil vi bruge sys-modulet samt os-modulet til at hente mappen (nuværende såvel som en forælder) og sætte stien direkte til det ønskede modul.
Syntaks: os.sti.dirnavn(sti)
Parameter:
sti : Et stilignende objekt, der repræsenterer en filsystemsti.Returtype: Denne metode returnerer en strengværdi, som repræsenterer mappenavnet fra den angivne sti.
For det første får vi den aktuelle mappe ved at bruge os.path.dirname (os.path.realpath(__file__)), for det andet vil vi få den overordnede mappe ved at bruge os.path.dirname(), til sidst tilføjer vi den overordnede mappe. mappe til sys.sti for at kontrollere, vil vi bruge dens metode.
hvordan man forvandler streng til int
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()> |
>
>
Produktion:
