Liste opp gjeldende bane
Ved å erklære følgende, kan vi sjekke gjeldende Python -banen:
Importer SysHer brukes PPrint -modulen bare for å få ting til å se pene ut, slik at du kan ignorere den delen, og konsentrere deg om resten. Alt vi prøver å gjøre her er å skrive ut sys.sti.
Dette er hva vi får:
Det du legger merke til her er at det først og fremst er en liste. Så i henhold til listen vil den først se i den gjeldende arbeidskatalogen, deretter i andre kataloger en etter en. Den nåværende arbeidskatalogen er katalogen der hovedpytonskriptet - den som blir utført - blir funnet. Det dette også betyr er at denne listen kan endres eller redigeres.
Legge til en sti
Sys.sti.vedlegg () -metoden brukes spesielt for å legge til en bane til de eksisterende.
Anta at nå som jeg har to distinkte filer: Main.py, og fil1.py. Hoved.PY er hovedfilen, og vi skal prøve å importere File1.PY (en modul som vi skrev).
hoved-.py | fil1.py |
---|---|
Importer fil1 Print (File1.hemmelig) | hemmelighet = “Dette er den hemmelige frasen” |
Fordi fil1.PY eller vår modul er innenfor arbeidskatalogen, du skal kunne skrive ut den hemmelige setningen med hell. Dette er slik at når Python -tolken søker etter den forespurte modulen, vil den søke i arbeidskatalogen først, og fordi modulen vår kalt File1 er innenfor arbeidskatalogen, vil den automatisk skrive ut vår hemmelige setning.
Anta at jeg oppretter en katalog i arbeidskatalogen min kalt “Directory1” og plasserer modulen min som heter File1 i den.
Nå, innen modulen File1 er den hemmelige frasen som vi prøver å skrive ut. I dette tilfellet vil det ikke skrive ut den hemmelige frasen. Hvorfor? Fordi tolken ikke ser i “Directory1” for noen moduler. Med andre ord, den nåværende arbeidskatalogen er medlem av listen over SYS.bane, men "katalog1" er ikke medlem av den listen. Så den resulterende feilen er en modulenotfound -feil - den kunne ikke finne eller lokalisere modulen som heter File1.
For å avverge dette problemet, må du fortelle Python -tolken hvor du skal se etter modulfilen1. Det er her Sys.sti.vedlegg () -metoden kommer inn.
Sys.sti.vedlegg () -metoden brukes til å legge til banen som vi vil ha den eksisterende listen.
På et Linux -system:
sys.sti.Legg til (“/Path/To/Dir”)På et Windows -system ville du skrevet:
sys.sti.vedlegg (“C: \\ sti \\ til \\ dir”)Vær oppmerksom på at du ikke kan legge til noen gitt fil til SYS.bane, i stedet kan du legge til kataloger, og deretter importere filene du ønsker.
Eksempel 1
Så la oss prøve den forrige operasjonen (der File1 -modulen ligger i Directory1) igjen, men denne gangen legger vi stien til File1 -modulen til SYS.Sti ved hjelp av SYS.sti.vedlegg () Metode.
hoved-.py | fil1.py |
---|---|
Importer Sys sys.sti.vedlegg ('C: \\ brukere \\ Never \\ PycharmProjects \\ PythonProject1 \\ katalog1 ') Importer fil1 Print (File1.hemmelig) | hemmelighet = “Dette er den hemmelige frasen” |
Når vi legger til stien ved hjelp av SYS.sti.vedlegg () Metode, vi legger først plasseringen av modulen til banen, og importerer den deretter. Hvis det gjøres på en slik måte, skal Python -tolken kunne finne den forespurte modulen, og derfor hente den hemmelige variabelen.
Utgangen fra den forrige operasjonen er som følger:
Eksempel nr. 2
La oss ta et annet eksempel, denne gangen på en Linux -maskin. La oss anta at vi har en fil - Main.py.
hoved-.py |
---|
Importer Sys Fra Pprint Import Pprint PPrint (Sys.sti) |
Her, Sys.Sti [0] er “/Home/Kalyani” fordi det er der Main.PY er lokalisert.
La oss nå endre skriptet litt ved å bruke SYS.sti.vedlegg () Metode. La oss bruke metoden for å legge til en bestemt bane ('/Home/Kalyani/Directory1') til SYS.sti.
hoved-.py |
---|
Importer Sys Fra Pprint Import Pprint sys.sti.vedlegg ('/Home/Kalyani/Directory1') PPrint (Sys.sti) |
Så, Sys.sti.APPLED () -metoden har lagt veien til slutten av den eksisterende listen! Her, vær oppmerksom på at anlegget gjøres på slutten av listen ikke i begynnelsen.
Pythonpath
Det er ett lite lite problem med det vi nettopp gjorde, og det er at vi ikke permanent satte det stedet på sysene.Stieliste. Sys.sti.vedlegg () -metoden brukes til å midlertidig legge til en bane, og som sådan vil den banen være gyldig for en økt for eksempel for eksempel. Hvis du vil endre sysene permanent.Stieliste, så kan vi bruke PythonPath for å legge banen til listen. Siden sys.Sti ser også inn i PythonPath, stedene som er oppført vil da bli inkludert i listen over stier.
På Linux:
Eksporter pythonpath = '/Path/to/dir'Her kan du legge til banen du vil ha.
hoved-.py |
---|
Importer Sys Fra Pprint Import Pprint PPrint (Sys.sti) |
Når vi skriver komplekse programmer i Python, vil vi til slutt legge til tredjepartsmoduler eller enda bedre, lage våre egne moduler. I alle tilfeller kan vi ikke oppbevare hver eneste Python -fil vi oppretter i en katalog, det kan være lurt å bruke flere kataloger for å klassifisere filene våre tilstrekkelig. Problemet er imidlertid at vi kan trenge å importere våre opprettede moduler til venstre og høyre. I slike tilfeller, hvis vi ønsker å forhindre en modulenotfunnet feil, kan vi legge til plasseringen av katalogen - og husk deg, det må være en katalog, ikke en fil - til SYS.Sti ved hjelp av SYS.sti.vedlegg () Metode.
Glad koding!