Quand os.environ['foo'] correspond pas à l'os.la fonction getenv('foo')?

J'ai une petite application en Python, lancé par subprocess.Popen, qui prend un peu de paramètres sous la forme de variables d'environnement. Je fais cela en passant de l'environnement dans la structure du Popen appel. Ensuite, le programme lit les variables via os.getenv.

Ou plutôt, c'est l'habitude de lire de cette façon. Sur Windows, il a bien fonctionné. Mais sur nos serveurs FreeBSD, os.getenv retourne None pour tous les paramètres, nous avons passé en. L'étrange, c'est que os.environ a des valeurs très bien—et, en effet, il suffit de passer tous os.getenv('foo') appels à os.environ['foo'] fait tout fonctionne bien sur les deux plates-formes.

Pourquoi ces valeurs sont-elles différentes? Quand un approprié sur l'autre?