在Python中如何正确取消设置Linux环境变量?
根据文档的说明:
如果你的平台支持
unsetenv()
这个功能,你可以通过删除映射中的项目来取消环境变量。每当你从 os.environ 中删除一个项目时,unsetenv()
会自动被调用,另外当你使用pop()
或clear()
方法时,也会触发这个功能。
不过,我想要一个无论 unsetenv()
是否可用都能工作的办法。如果这个功能不可用,我该怎么从映射中删除项目呢?比如说 os.environ['MYVAR'] = None
这样做可以吗?
4 个回答
12
你仍然可以从映射中删除项目,但如果没有unsetenv()
这个功能,实际上是不会把这个变量从环境中真正删除的。
del os.environ['MYVAR']
51
对于那些想优雅地删除环境变量,并且不想因为变量不存在而出错的人:
os.environ.pop('MYVAR', None)
这个方法的效果和下面的代码完全一样:
if 'MYVAR' in os.environ:
del os.environ['MYVAR']
但是如果你需要处理可能出现的错误,可以按照其他用户的建议,使用 del os.environ['MYVAR']
或者 os.environ.pop('MYVAR')
。
217
只要
del os.environ['MYVAR']
应该就能正常工作。