Come usare sys.sentiero.Aggiungi in Python

Come usare sys.sentiero.Aggiungi in Python

Sys.Il percorso è un elenco di directory in cui l'interprete Python cerca moduli. Intendiamoci, questo è un elenco! Quando un modulo viene richiesto in un file di progetto, cercherà attraverso ciascuna delle directory nell'elenco. Se il modulo si trova all'interno di una di quelle directory, allora tutto va bene e il tuo progetto è reso con successo. Tuttavia, se il modulo non si trova all'interno delle directory elencate, il progetto fallirà per non poter "aggiungere" la directory in cui il modulo si trova nell'elenco utilizzando la funzione Append (). In questo tutorial, impareremo su come usare SYS.sentiero.Append () in Python.

Elenca il percorso corrente

Dichiarando quanto segue, possiamo controllare l'attuale percorso Python:

Import sys
da pprint import pprint
pprint (sys.sentiero)

Qui, il modulo PPRINT è solo usato per rendere le cose belle, quindi puoi ignorare quella parte e concentrarti sul resto. Tutto quello che stiamo cercando di fare qui è stampare sys.sentiero.

Questo è ciò che otteniamo:

Quello che noti qui è che prima di tutto, è un elenco. Quindi, secondo l'elenco, apparirà prima nella directory di lavoro attuale, quindi in altre directory una ad una. La directory di lavoro attuale è la directory in cui si trova lo script principale di Python - quello che viene eseguito. Inoltre, ciò significa anche che questo elenco può essere modificato o modificato.

Aggiunta di un percorso

Il sistema.sentiero.Il metodo Append () viene utilizzato specificamente per aggiungere un percorso a quelli esistenti.

Supponiamo ora che ho due file distinti: Main.py e file1.Py. Principale.Py è il file principale e proveremo a importare file1.Py (un modulo che abbiamo scritto).

principale.Py File1.Py
File di importazione1
Stampa (file1.segreto)
segreto = "Questa è la frase segreta"

Perché file1.Py o il nostro modulo rientra nella directory di lavoro, dovresti essere in grado di stampare correttamente la frase segreta. Questo perché quando l'interprete di Python cerca il modulo richiesto, cercherà prima nella directory di lavoro e perché il nostro modulo chiamato file1 è all'interno della directory di lavoro, stamparrà automaticamente la nostra frase segreta.

Ora, supponiamo di creare una directory all'interno della mia directory di lavoro chiamata "Directory1" e posizionare il mio modulo chiamato file1 al suo interno.

Ora, all'interno del modulo file1 è la frase segreta che stiamo cercando di stampare. In questo caso, non stamperà la frase segreta. Perché? Perché l'interprete non sta cercando in "Directory1" per eventuali moduli. In altre parole, l'attuale directory di lavoro è membro dell'elenco di SYS.Path ma "Directory1" non è un membro di tale elenco. Quindi, l'errore risultante è un errore modulenotfound: non è riuscito a trovare o individuare il modulo chiamato file1.

Per evitare questo problema, è necessario dire all'interprete di Python dove cercare il file del modulo1. Qui è dove il sistema.sentiero.Il metodo Append () entra.

Il sistema.sentiero.Il metodo Append () viene utilizzato per aggiungere il percorso che vogliamo all'elenco esistente.

Su un sistema Linux:

sys.sentiero.append ("/path/to/dir")

Su un sistema Windows, scriveresti:

sys.sentiero.append ("c: \\ path \\ to \\ dir")

Si prega di notare che non è possibile aggiungere alcun file dato a sys.percorso, invece puoi aggiungere directory e quindi importare i file desiderati.

Esempio 1

Quindi, proviamo l'operazione precedente (in cui il modulo File1 si trova di nuovo all'interno di Directory1), ma questa volta, aggiungeremo il percorso al modulo File1 su SYS.percorso usando il sistema.sentiero.Metodo Append ().

principale.Py File1.Py
Import sys
sys.sentiero.append ('c: \\ utenti \\ mai \\ pycharmprojects \\
PythonProject1 \\ directory1 ')
File di importazione1
Stampa (file1.segreto)
segreto = "Questa è la frase segreta"

Quando aggiungiamo il percorso usando il sistema.sentiero.Metodo append (), per prima cosa aggiungiamo la posizione del modulo per percorso e quindi lo importa. Se fatto in questo modo, l'interprete di Python dovrebbe essere in grado di individuare il modulo richiesto e quindi recuperare la variabile segreta.

L'output dell'operazione precedente è la seguente:

Esempio n. 2

Facciamo un altro esempio, questa volta su una macchina Linux. Supponiamo che abbiamo un file - principale.Py.

principale.Py
Import sys
da pprint import pprint
pprint (sys.sentiero)

Qui, sys.Path [0] è "/home/kalyani" perché è qui che principale.Py si trova.

Ora, modifichiamo un po 'lo script usando il sistema.sentiero.Metodo Append (). Usiamo il metodo per aggiungere un particolare percorso ('/home/kalyani/directory1') a sys.sentiero.

principale.Py
Import sys
da pprint import pprint
sys.sentiero.append ('/home/kalyani/directory1')
pprint (sys.sentiero)

Quindi, il sistema.sentiero.Il metodo Append () ha aggiunto il percorso alla fine dell'elenco esistente! Qui, si prega anche di notare che l'appendimento viene eseguita alla fine dell'elenco non all'inizio.

Pythonpath

C'è un piccolo piccolo problema con quello che abbiamo appena fatto e cioè non abbiamo messo in modo permanente quella posizione sul sistema.Elenco dei percorsi. Il sistema.sentiero.Il metodo Append () viene utilizzato per aggiungere temporaneamente un percorso e come tale, quel percorso sarebbe valido per una sessione, ad esempio. Se desideri modificare permanentemente il sistema.Elenco del percorso, quindi possiamo usare Pythonpath per aggiungere il percorso all'elenco. Dal sistema.Il percorso esamina anche Pythonpath, le posizioni elencate saranno quindi incluse nell'elenco dei percorsi.

Su Linux:

esporta pythonpath = '/path/to/dir'
  1. Sulla macchina Linux, apri un terminale e vai alla cartella contenente .Bashrc.
  2. nano .Bashrc
  3. Aggiungere quanto segue alla fine del .File Bashrc: esporta pythonpath = '/home/kalyani/directory1'

Qui, puoi aggiungere il percorso che desideri.

  1. Chiudi il terminale e apri un nuovo terminale
  2. Ora, prova a eseguire il tuo programma. Nel mio caso, sarà il seguente:
principale.Py
Import sys
da pprint import pprint
pprint (sys.sentiero)

Quando scrivono programmi complessi in Python, alla fine aggiungeremo moduli di terze parti o anche meglio, creeremo i nostri moduli. In tutti i casi, non possiamo conservare ogni singolo file Python che creiamo in una directory, potremmo voler utilizzare più directory per classificare adeguatamente i nostri file. Il problema tuttavia è che potremmo aver bisogno di importare i nostri moduli creati a sinistra e a destra. In tali casi, se vogliamo prevenire un errore modulenotfound, allora possiamo aggiungere la posizione della directory - e intendiamoci, deve essere una directory, non un file - su sys.percorso usando il sistema.sentiero.Metodo Append ().

Codice felice!