Python subprocess.run: jou ien bernproses syn eigen proxy-omjouwing
Jou in kopiearre omjouwing oan subprocess.run as ien bernopdracht in proxy nedich hat, sûnder Python syn omjouwing foar oar wurk te feroarjen.
In Python-programma kin ien bernopdracht syn eigen proxy-omjouwing jouwe. Kopiearje de erfd wurden, feroarje de kopy en jou it oan subprocess.run:
import os
import subprocess
child_env = os.environ.copy()
child_env["https_proxy"] = "http://proxy.example:8080"
subprocess.run(
["curl", "--head", "https://www.example.com/"],
env=child_env,
check=True,
timeout=30,
)It foarbyld giet derfan út dat curl al beskikber is. Syn HTTPS-fersyk kin in HTTP-proxy brûke dy't de nedige tunnel stipet. Foar dizze kontrôle fan in iepenbiere side sûnder ynstelde proxy-gegevens kin in kandidaat út de HTTP-proxylist it einpunt fan it foarbyld ferfange. It bern krijt noch de rest fan de kopiearre omjouwing, ynklusyf alle jildende omsyklingsynstellingen.
It trochjaan fan env jout dizze oprop dy omjouwing. De kopy foarkomt dat os.environ feroare wurdt foar oar wurk yn it Python-proses.
Direkt oan os.environ tawize hat ek betsjutting: it fernijt de prosesomjouwing fan Python en kin bern beynfloedzje dy't letter start wurde. It fernijt de shell dy't Python starte net, in net besibbe applikaasje net en in bern dat al rint net.
As it doel is om takomstige opdrachten yn jo ynteraktive shell te feroarjen, meitsje dy feroaring dan yn de shell. As mar ien start ark in oare rûte nedich hat, hâld syn omjouwing njonken de subprocess-oprop sa't toand is.