Python subprocess.run: بىر بالىغا ئۆزىنىڭ proxy مۇھىتىنى بېرىش
بىر بالا بۇيرۇقى proxy غا ئېھتىياجلىق بولغاندا، Python مۇھىتىنى باشقا ئىشلارغا ئۆزگەرتمەيلا، كۆچۈرۈلگەن مۇھىتنى subprocess.run غا بېرىڭ.
Python پروگراممىسى بىر بالا بۇيرۇقىغا ئۆزىنىڭ proxy مۇھىتىنى بېرەلەيدۇ. مىراس قالدۇرۇلغان قىممەتلەرنى كۆچۈرۈڭ، كۆچۈرمىنى ئۆزگەرتىڭ، ئاندىن ئۇنى 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,
)مىسال curl نىڭ ئاللىبۇرۇن بارلىقىنى پەرەز قىلىدۇ. ئۇنىڭ HTTPS تەلەپلىرى تەلەپ قىلىنغان تونېلنى قوللايدىغان HTTP proxy نى ئىشلىتەلەيدۇ. proxy ھۆججەتلىرىنى تەڭشىمەيلا بۇ ئاشكارا تور بېكەت تەكشۈرۈشى ئۈچۈن HTTP proxy تىزىملىكىدىن بىر نامزات مىسالنىڭ ئاخىرقى نۇقتىسىنى ئالماشتۇرالايدۇ. بالا يەنىلا كۆچۈرۈلگەن مۇھىتنىڭ قالدۇق قىسمىنى، شۇنداقلا مۇناسىۋەتلىك ئايلىنىپ ئۆتۈش تەڭشەكلىرىنى ئالىدۇ.
env نى بېرىش بۇ چاقىرىققا شۇ مۇھىتنى بېرىدۇ. كۆچۈرمە Python جەريانىدىكى باشقا ئىشلار ئۈچۈن os.environ نىڭ ئۆزگىرىشىنى توسىدۇ.
بىۋاسىتە os.environ غا تەقسىملەشنىڭمۇ مەنىسى بار: ئۇ Python جەريان مۇھىتىنى يېڭىلايدۇ ۋە كېيىن باشلانغان بالىلارغا تەسىر كۆرسىتەلەيدۇ. ئۇ Python نى باشلىغان shell نى يېڭىلىمايدۇ، مۇناسىۋەتسىز پروگراممىنى ۋە ئاللىبۇرۇن ئىجرا بولۇۋاتقان بالىنىمۇ يېڭىلىمايدۇ.
مەقسەت interactive shell ىڭىزدىكى كېلەچەك بۇيرۇقلارنى ئۆزگەرتىش بولسا، بۇ ئۆزگەرتىشنى shell دا قىلىڭ. پەقەت بىرلا قوزغىتىلغان قورال ئوخشىمىغان يولغا ئېھتىياجلىق بولسا، ئۇنىڭ مۇھىتىنى كۆرسىتىلگەندەك subprocess چاقىرىقىنىڭ يېنىدا ساقلاڭ.