2013-07-15 8 views
9

Utilizzo del modulo os È possibile ottenere i valori delle variabili di ambiente. Per esempio:È possibile impostare una variabile d'ambiente da Python in modo permanente?

os.environ['HOME'] 

Tuttavia, non riesco a impostare le variabili di ambiente:

os.environ['BLA'] = "FOO" 

Funziona nella sessione corrente del programma, ma quando ho Python programma è finito, non vedo che è cambiato (o imposta) i valori delle variabili d'ambiente. C'è un modo per farlo da Python?

risposta

0

Non sono sicuro. È possibile restituire la variabile e impostarla in questo modo. Per fare questo stampalo.

(programma Python)

... 
print foo 

(bash)

set -- $(python test.py) 
foo=$1 
7

Se quello che vuoi è quello di rendere le variabili d'ambiente persistono le sessioni attraversavano, si potrebbe

Per unix

fare ciò che facciamo quando in 01 Shell. Aggiungi le variabili d'ambiente all'interno di ~/.bashrc.

import os 
with open(os.path.expanduser("~/.bashrc"), "a") as outfile: 
    # 'a' stands for "append" 
    outfile.write("export MYVAR=MYVALUE") 

o per di Windows:

setx /M MYVAR "MYVALUE" 

in un *.bat che è in avvio in Programmi

+1

Solo per curiosità, c'è un modo per ottenere questo risultato su Windows? – Alexis

+0

@Alexis Non ho molta familiarità con Windows, ma secondo http://superuser.com/questions/79612/setting-and-getting-windows-environment-variables-from-the-command-prompt, è possibile utilizzare il comando 'setx' da dentro python. Oppure puoi accedere al registro dei vinci direttamente con il modulo python '_winreg' http://docs.python.org/2/library/_winreg.html – rantanplan