2013-07-15 8 views
9

Moduł I można uzyskać wartości zmiennych środowiskowych. Na przykład:Czy można ustawić na stałe zmienną środowiskową z Pythona?

os.environ['HOME'] 

jednak, że nie można ustawić zmienne środowiskowe:

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

Działa w bieżącej sesji programu, ale kiedy python program jest gotowy, nie widzę, że zmienił (lub ustaw) wartości zmiennych środowiskowych. Czy jest jakiś sposób na zrobienie tego z Pythona?

Odpowiedz

0

Nie jestem pewien. Możesz zwrócić zmienną i ustawić ją w ten sposób. Aby to zrobić, wydrukuj.

(program python)

... 
print foo 

(bash)

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

Jeśli to, co chcesz, aby Twoje zmienne środowiskowe utrzymują sesje accross, można

Dla UNIX

rób to, co robimy, gdy w bash powłoka. Dołącz zmienne środowiskowe wewnątrz ~/.bashrc.

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

lub systemu Windows:

setx /M MYVAR "MYVALUE" 

w *.bat który jest w starcie w Program Files

+1

tylko przez ciekawość, czy jest jakiś sposób aby to osiągnąć na Windows? – Alexis

+0

@Alexis Nie jestem zaznajomiony z Windows, ale zgodnie z http://superuser.com/questions/79612/setting-and-getting-windows-environment-variables--z-the-andommand-prompt, mógłbyś użyć komenda 'setx' z wewnętrznego pythona. Możesz też uzyskać bezpośredni dostęp do rejestru wygranych bezpośrednio za pomocą modułu '_winreg' python http://docs.python.org/2/library/_winreg.html – rantanplan