以下のPythonコードを使用して、環境変数http_proxy
をリセットしています。 Linux CentOS 6では、Pythonスクリプトの残りの部分の変数の設定を解除していません。
コード:
import os
print "Unsetting http..."
os.system("unset http_proxy")
os.system("echo $http_proxy")
print "http is reset"
出力:
Unsetting http...
http://web-proxy.xxxx.xxxxxxx.net:8080
http is reset
Process finished with exit code 0
承認された回答:
os.system()
の各呼び出し 独自のサブシェルで実行され、独自の新鮮な環境があります:
>>> import os
>>> os.system("echo $$")
97678
0
>>> os.system("echo $$")
97679
0
あなたは http_proxy
の設定を解除する 変数ですが、サブシェルはコマンドの実行を完了しました(unset
)、および終了します。次に、echo
を実行する新しい環境で新しいサブシェルを開始します 。
あなたがやろうとしているのはdel os.environ['http_proxy']
だと思います 、またはos.environ.pop('http_proxy')
http_proxy
がないことを確認したい場合 以前に存在したかどうかに関係なく、環境変数:
$ export foo=bar
$ python2
Python 2.7.10 (default, Jul 15 2017, 17:16:57)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['foo']
'bar'
>>> del os.environ['foo']
>>> os.system('echo $foo')
0