GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:come annullare l'impostazione della variabile di ambiente "http_proxy" in Python?

Sto usando il codice Python sotto per ripristinare la variabile di ambiente http_proxy in Linux CentOS 6, ma non sta disimpostando la variabile per il resto dello script Python.

Codice:

 import os 
 print "Unsetting http..." 
 os.system("unset http_proxy") 
 os.system("echo $http_proxy") 
 print "http is reset"

Uscita:

Unsetting http...
http://web-proxy.xxxx.xxxxxxx.net:8080
http is reset
Process finished with exit code 0

Risposta accettata:

Ogni chiamata di os.system() viene eseguito nella propria subshell, con il proprio nuovo ambiente:

>>> import os
>>> os.system("echo $$")
97678
0
>>> os.system("echo $$")
97679
0

Tu sei disimpostando il http_proxy variabile, ma poi la tua subshell ha completato l'esecuzione del comando (ad esempio:unset ), e termina. Quindi avvii una nuova subshell con un nuovo ambiente in cui eseguire echo .

Credo che quello che stai cercando di fare sia del os.environ['http_proxy'] o os.environ.pop('http_proxy') se vuoi assicurarti che non ci sia http_proxy variabile di ambiente indipendentemente dal fatto che ne esistesse o meno una in precedenza:

$ 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

Linux
  1. Come controllare la versione del sistema operativo e di Linux

  2. Come cambiare l'identità di un sistema Linux

  3. Come impostare la variabile di ambiente per tutti nel mio sistema Linux?

  4. Come posso controllare il sistema operativo in Python?

  5. Due versioni di Python su Linux. come rendere 2.7 il valore predefinito

Come impostare/disimpostare le variabili d'ambiente in Linux

Come modificare la shell predefinita nel sistema Linux

Come impostare e annullare l'impostazione delle variabili di ambiente su Linux

Linux:come installare X11 sul proprio sistema Linux Buildroot?

Come utilizzare il comando fd sul sistema Linux

Come posso vedere il documento Python su Linux?