PythonでLinux環境変数の設定を解除する正しい方法は何ですか?


85

ドキュメントから:

プラットフォームがunsetenv()機能をサポートしている場合は、このマッピングの項目を削除して、環境変数を設定解除できます。unsetenv()アイテムがos.environから削除されたとき、およびpop()orclear()メソッドの1つが呼び出されたときに、自動的に呼び出されます。

ただし、の可用性に関係なく機能するものが必要ですunsetenv()。アイテムが利用できない場合、マッピングからアイテムを削除するにはどうすればよいですか?os.environ['MYVAR'] = None


1
unsetenvドキュメントによると、「Unix、Windowsのほとんどのフレーバー」で動作します。
カトリエル2010

うーん、よくわかりませんでした。私は$ unset MYVARコマンドが機能するプラットフォームを使用しています
fredley 2010

回答:


139

ただ

del os.environ['MYVAR']

動作するはずです。


1
結局のところ、問題はマッピングからアイテムを削除することでした。unsetenvがサポートされていない場合、キーと値はマッピングから削除されますが、環境では設定されたままです。
Vinay Sajip 2010

1
キーが存在しない場合は、KeyErrorが発生すると思います。
rickfoosusa 2015

5
OSXで動作しなかったdel os.environときに機能したレコードos.unsetenv
jeremyjjbrown 2015年

1
上のドキュメントdeldocs.python.org/2/tutorial/…–
Marty Chang

参考までに、このソリューションはべき等ではありません。つまりMYVAR、環境に存在しない場合は、例外が発生します。あなたはそれを包むことができますがtry:、それは残念です。
medley 5620年

9

マッピングからアイテムを削除することunsetenv()はできますが、使用できない場合、環境から変数を実際に削除することはありません。

del os.environ['MYVAR']
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.