Elenca il percorso corrente
Dichiarando quanto segue, possiamo controllare l'attuale percorso Python:
Import sysQui, 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'Qui, puoi aggiungere il percorso che desideri.
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!