我有一个小型 Python 应用程序,通过 启动subprocess.Popen
,它以环境变量的形式接受一些参数。我通过将环境结构传递给Popen
调用来做到这一点。然后程序通过 读取变量os.getenv
。
或者更确切地说,它曾经以这种方式阅读它们。在 Windows 上,它运行良好。但是在我们的 FreeBSD 服务器上,os.getenv
返回None
我们传入的所有参数。奇怪的是,os.environ
它的值很好——事实上,只需将所有os.getenv('foo')
调用切换到两个平台os.environ['foo']
上都可以正常工作。
为什么这些值不同?什么时候一个比另一个合适?