2013-08-28 10 views
15

ho percorso impostato utilizzandocome stampare i contenuti del PYTHONPATH

sys.path.insert(1, mypath) 

Poi, ho provato a stampare contenuto di una variabile PYTHONPATH utilizzando os.environ come di seguito

print(os.environ['PYTHONPATH']) 

ma sto ottenendo errore come

raise KeyError(key) 
KeyError: 'PYTHONPATH' 

Come è possibile stampare il contenuto della variabile PYTHONPATH.

+0

Ovviamente ciò significa che non si dispone di set di percorsi Python nella macchina. – thavan

+0

@thavan non dovrebbe sys.path.insert impostare la variabile PYTHONPATH? –

+1

Una cosa da notare: sys.path è inizializzato da un numero di posizioni, una delle quali è la variabile di ambiente PYTHONPATH. Tuttavia, l'aggiornamento di sys.path non aggiorna PYTHONPATH. –

risposta

22

Invece di usare il os.environ dict, è possibile utilizzare semplicemente il modulo sys:

import sys 
print(sys.path) 

Questa soluzione dovrebbe essere indipendente dalla piattaforma. La chiave PYTHONPATH può variare in base al sistema operativo.

+0

sys.path funziona ma come provare a utilizzare la variabile env PYTHONPATH. –

+0

ci deve/dovrebbe essere una variabile comune per 'PYTHONPATH' su tutte le piattaforme. Se differisce, suppongo che sia meglio usare sys.path allora. –

+0

Perché vuoi usare il PYTHONPATH non elaborato mentre 'sys.path' è basato su questa variabile più qualche altra directory predefinita (a seconda del tuo SO)? Vedi http://docs.python.org/2/library/sys.html#sys.path per maggiori informazioni. –

3

Se PYTHONPATH non è stato impostato allora che ci si aspetta, forse di default ad una stringa vuota:

print(os.environ.get('PYTHONPATH', '')) 

Si può anche essere dopo:

import sys 
print(sys.path) 
+0

Ho provato a fare il default su una stringa vuota. E poi ha fatto 'sys.path.insert (1, mypath)'. Ma nessun cambiamento. Sto ancora ricevendo errore per 'print (os.environ ['PYTHONPATH'])' come keyerror. –

+0

@Drt cosa stai provando a fare? –