Orada arasında hiçbir işlevsel bir fark olsa da os.environ.getve os.getenvbir orada masif arasındaki fark os.putenvve ayar girişleri os.environ. os.putenvolduğu kırık Eğer varsayılan bu yüzden, os.environ.getsadece yol önlemek için os.getenvkullanmak teşvik os.putenvsimetri için.
os.putenvGerçek OS düzeyinde ortam değişkenleri değiştirir, ancak bir şekilde bu aracılığıyla görünmüyor os.getenv, os.environya da ortam değişkenleri teftiş başka stdlib yol:
>>> import os
>>> os.environ['asdf'] = 'fdsa'
>>> os.environ['asdf']
'fdsa'
>>> os.putenv('aaaa', 'bbbb')
>>> os.getenv('aaaa')
>>> os.environ.get('aaaa')
Aradıktan getenvsonra gerçek ortam değişkenlerini görmek için muhtemelen C seviyesine bir ctypes çağrısı yapmanız gerekir os.putenv. (Bir kabuk alt işleminin başlatılması ve ortam değişkenleri için sorulması da işe yarayabilir, eğer başlangıç yapılandırmasından kaçınmak için kaçmanız ve --norc/ --noprofile/ yapmanız gereken başka bir şey varsa, ancak doğru yapmak çok daha zor görünüyor.)
os.environ.get()hangi geri dönüşleri sorarNoneve env. var. mevcut değil. Kullanmakla kafa karıştırıcıos.environ['TERM']olan şey, sorunun ne olduğu değildir.