logo

Python – Tuo moduuli eri hakemistoista

Suurten projektien parissa työskennellessämme saatamme kohdata tilanteen, jossa haluamme tuoda a moduuli toisesta hakemistosta. Mutta jostain syystä moduulia ei ehkä tuoda oikein. Älä nyt huolehdi, jos moduuliasi ei ole tuotu oikein. Tässä artikkelissa käsittelemme tapoja tuoda moduuli toisesta hakemistosta.

Huomautus: Moduuli on vain Python-ohjelma, joka päättyy .py laajennus ja moduulin sisältävä kansio muuttuu paketiksi.



Hakemistorakenne:

 - Folder_1 - main.py - Folder_2 - module1.py>

Oletetaan, että Pythonissa tiedoston tuontia varten meillä on kaksi eri kansiota, joista toinen sisältää main.py-tiedoston, joka on tärkein Python-tiedostomme, johon haluamme tuoda moduulin1 kansiosta_2.

Moduuli 1: sisältää kaksi funktiota nimeltä add ja odd_even. Funktio add ottaa kaksi argumenttia ja palauttaa niiden lisäyksen. Pariton_parillinen-funktio ottaa vain yhden Perustelu ja tulosta vaikka numero on parillinen tai tulosta Odd, jos numero on pariton.



module1.py

Python 3






# creating a simple add function> def> add(a, b):> >return> a>+>b> # creating a simple odd_even function> # to check if the number is odd or even> def> odd_even(n):> >if> n>%> 2> =>=> 0>:> >print>(>'Even'>)> >else>:> >print>(>'Odd'>)>

>

>

Jos yritämme vain tuoda moduuli 1 alkaen Kansio_2, kohtaamme seuraavan virheen.

main.py

Python 3




# importing module1 from another folder> import> Folder_2> # calling odd_even function> module1.odd_even(>5>)>

>

>

Lähtö:

Virhe

ModuleNotFoundError , koska oletuksena Python-tulkki tarkistaa tiedoston vain nykyisestä hakemistosta, ja meidän on asetettava tiedostopolku manuaalisesti moduulien tuomiseksi toisesta hakemistosta. Voimme tehdä tämän useilla eri tavoilla. Näitä tapoja käsitellään yksityiskohtaisesti alla.

Tapa 1: Tuo moduuli eri hakemistoista sys-moduulin avulla

Voimme käyttää sys.path lisätäksesi uuden eri kansion polun (kansio, josta haluamme tuoda moduulit) järjestelmäpolkuun, jotta Python voi myös etsiä moduulia kyseisestä hakemistosta, jos se ei löydä moduulia nykyisestä hakemistostaan. Kuten sys.path kuuluu alle listatyyppinen luokka joten voimme helposti käyttää insert-menetelmää kansiopolun lisäämiseen.

Python 3

osittainen riippuvuus




# importing sys> from> module1>import> odd_even, add> import> sys> # adding Folder_2 to the system path> sys.path.insert(>0>,>'/home/amninder/Desktop/Folder_2'>)> # importing the add and odd_even> # function> # calling odd_even function> odd_even(>5>)> # calling add function> print>(>'Addition of two number is :'>, add(>2>,>2>))>

>

>

Lähtö :

Sys

Tapa 2: PYTHONPATHin käyttäminen ympäristömuuttuja

Samoin, jos et halua käyttää sys moduuli asettaaksesi uuden hakemiston polun. Voit määrittää PYTHONPATH-muuttujalle hakemistopolun ja saada ohjelmasi toimimaan.

Sisään Linux , voimme käyttää seuraavaa komentoa terminaalissa polun asettamiseen:

vie PYTHONPATH='polku/hakemistoon'

Windows-järjestelmässä:

SET PYTHONPATH=polku/hakemistoon

Jos haluat nähdä, onko PYTHONPATH-muuttuja uuden kansion polku, voimme käyttää seuraavaa komentoa:

kaiku $PYTHONPATH

Python 3




# importing the add and odd_even function> from> module1>import> odd_even, add> # calling odd_even function> odd_even(>5>)> # calling add function> print>(>'Addition of two number is :'>, add(>2>,>2>))>

>

>

Lähtö:

PYTHONPATHia käyttämällä

Oletetaan, että meillä on tällainen hakemistorakenne:

- project - Folder_1 - main.py - Folder_2 - subfolder - new.py>

Nyt haluat tuoda uusi.py moduuli alkaen Kansio_2 projektimme Kansioon_1 main.py tiedosto.

Syntaksi:

osoitteesta project.folder.subfolder.filename tuontitoiminnon nimi

Python 3




# importing sys> import> sys> # adding Folder_2/subfolder to the system path> sys.path.insert(>0>,>'/home/amninder/Desktop/project/Folder_2/subfolder'>)> # importing the hello> from> new>import> hello> # calling hello function> hello()>

>

>

Lähtö:

Lähtö