2010-08-26 34 views
37

Từ các tài liệu:Cách chính xác để bỏ đặt biến môi trường linux trong python là gì?

Nếu nền tảng này hỗ trợ các unsetenv() chức năng, bạn có thể xóa các mục trong bản đồ này để biến môi trường unset. unsetenv() sẽ tự động được gọi khi một mục bị xóa khỏi os.environ và khi một trong các phương thức pop() hoặc clear() được gọi.

Tuy nhiên, tôi muốn thứ gì đó sẽ hoạt động bất kể tính sẵn có của unsetenv(). Làm cách nào để xóa các mục khỏi bản đồ nếu nó không có sẵn? os.environ['MYVAR'] = None?

+1

'unsetenv' hoạt động trên" hầu hết các hương vị của Unix, Windows "theo tài liệu. – katrielalex

+0

hmmm, tôi không chắc lắm. Tôi đang ở trên một nền tảng mà các lệnh '$ unset MYVAR' làm việc – fredley

Trả lời

58

Chỉ

del os.environ['MYVAR'] 

nên làm việc.

+2

Điều đó làm việc iff' unsetenv'. – katrielalex

+1

Câu hỏi đặt ra là xóa mục khỏi bản đồ. Nếu unsetenv không được hỗ trợ, thì khóa và giá trị được loại bỏ khỏi ánh xạ nhưng vẫn được đặt trong môi trường, neh? –

+1

Nếu khóa không tồn tại, tôi nghĩ bạn sẽ nhận được KeyError. – rickfoosusa

4

Bạn vẫn có thể xóa các mục từ ánh xạ, nhưng nó sẽ không thực sự xóa biến khỏi môi trường nếu unsetenv() không khả dụng.

del os.environ['MYVAR'] 
Các vấn đề liên quan