2012-05-08 31 views
13

Tôi đã thử điều này:Làm thế nào để đọc giá trị biến môi trường cửa sổ trong python?

os.environ['MyVar'] 

Nhưng nó không hoạt động! Có cách nào phù hợp với mọi hệ điều hành không?

+0

Tôi nhận được lỗi này: KeyError: 'MyVar' –

+1

Bạn có chắc chắn rằng bạn đã xác định biến đúng cách không? – Alexander

+1

Làm thế nào để xác định nó? Tôi đã thêm nó trong Control Panel-> System and Security -> System -> Advamced system settings-> Biến môi trường –

Trả lời

30

Hãy thử sử dụng như sau:

os.getenv('MyVar') 

Từ documentation:

os.getenv(varname[, value])

Return the value of the environment variable varname if it exists, or value if it doesn’t. value defaults to None.

Availability: most flavors of Unix, Windows

Vì vậy, sau khi thử nghiệm nó:

>>> import os 
>>> os.environ['MyVar'] = 'Hello World!'  # set the environment variable 'MyVar' to contain 'Hello World!' 
>>> print os.getenv('MyVar') 
Hello World! 
>>> print os.getenv('not_existing_variable') 
None 
>>> print os.getenv('not_existing_variable', 'that variable does not exist') 
that variable does not exist 
>>> print os.environ['MyVar'] 
Hello World! 
>>> print os.environ['not_existing_variable'] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in ? 
    File "/usr/lib/python2.4/UserDict.py", line 17, in __getitem__ 
    def __getitem__(self, key): return self.data[key] 
KeyError: 'not_existing_variable  

phương pháp của bạn sẽ làm việc quá nếu biến môi trường tồn tại. Sự khác biệt khi sử dụng os.getenv là nó trả về None (hoặc giá trị đã cho), trong khi os.environ['MyValue'] cho ngoại lệ KeyError khi biến không tồn tại.

2
os.getenv('PATH') 

Bạn có thể kiểm tra bằng dòng mã bên trên. Nó sẽ liệt kê tất cả các đường dẫn được thiết lập.

0

Bạn có thể phải khởi động lại các cửa sổ để có thể đọc biến môi trường mà bạn đã đặt qua bảng điều khiển.

+5

Hoặc chỉ cần khởi động lại bảng điều khiển. –

Các vấn đề liên quan