What is the correct way to unset a linux environment variable in python?

根据文件:

如果平台支持 unsetenv()函数,则可以删除此映射中的项以取消设置环境变量。当从 os.environ 删除一个项目时,以及当调用 pop()clear()方法之一时,将自动调用 unsetenv()

然而,我想要的东西,将工作无论可用性的 unsetenv()。如果映射不可用,如何从映射中删除项?os.environ['MYVAR'] = None

86420 次浏览

只是

del os.environ['MYVAR']

应该可以。

您仍然可以从 测绘中删除项目,但是如果 unsetenv()不可用,它将不会真正从环境中删除变量。

del os.environ['MYVAR']

如果您需要有效的方法,例如在 TestCase.addCleanup()中,请尝试这样做

os.environ.pop('MYVAR')

对于那些正在寻找一种优雅的方法来在变量不存在的情况下取消环境变量而不出现错误的人来说:

os.environ.pop('MYVAR', None)

That works exactly as:

if 'MYVAR' in os.environ:
del os.environ['MYVAR']

但是,如果需要处理异常,请按照其他用户的建议: del os.environ['MYVAR']os.environ.pop('MYVAR')

I use os.unsetenv("MYVAR")