Python subprocess.run: ഒരു ചൈൽഡ് കമാൻഡിന് സ്വന്തം പ്രോക്സി പരിസ്ഥിതി നൽകുക
ഒരു ചൈൽഡ് കമാൻഡിന് പ്രോക്സി ആവശ്യമാകുമ്പോൾ പകർത്തിയ പരിസ്ഥിതി subprocess.run-ന് നൽകുക, Python-ന്റെ പരിസ്ഥിതി മറ്റ് ജോലികൾക്കായി മാറ്റാതെ.
ഒരു Python പ്രോഗ്രാമിന് ഒരു ചൈൽഡ് കമാൻഡിന് സ്വന്തം പ്രോക്സി പരിസ്ഥിതി നൽകാം. പാരമ്പര്യമായി ലഭിച്ച മൂല്യങ്ങൾ പകർത്തുക, പകർപ്പ് മാറ്റുക, എന്നിട്ട് അത് 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 പ്രോക്സി ഉപയോഗിക്കാം. പ്രോക്സി ക്രെഡൻഷ്യലുകൾ ക്രമീകരിക്കാതെ ഈ പൊതു സൈറ്റ് പരിശോധനയ്ക്ക് HTTP പ്രോക്സി പട്ടികയിൽ നിന്നുള്ള ഒരു സ്ഥാനാർത്ഥിക്ക് ഉദാഹരണത്തിലെ എൻഡ്പോയിന്റ് മാറ്റിസ്ഥാപിക്കാം. ചൈൽഡിന് പകർത്തിയ പരിസ്ഥിതിയുടെ ബാക്കി ഭാഗവും ലഭിക്കുന്നു, ബാധകമായ ബൈപ്പാസ് ക്രമീകരണങ്ങൾ ഉൾപ്പെടെ.
env നൽകുന്നത് ഈ വിളിക്ക് ആ പരിസ്ഥിതി നൽകുന്നു. പകർപ്പ് Python പ്രക്രിയയിലെ മറ്റ് ജോലികൾക്കായി os.environ മാറ്റുന്നത് ഒഴിവാക്കുന്നു.
നേരിട്ട് os.environ-ലേക്ക് അസൈൻ ചെയ്യുന്നതും അർത്ഥവത്താണ്: അത് Python-ന്റെ പ്രക്രിയാ പരിസ്ഥിതി പുതുക്കുകയും പിന്നീട് ആരംഭിക്കുന്ന ചൈൽഡുകളെ ബാധിക്കുകയും ചെയ്യാം. അത് Python ആരംഭിച്ച ഷെൽ പുതുക്കുന്നില്ല, ബന്ധമില്ലാത്ത ആപ്ലിക്കേഷനെയോ ഇതിനകം പ്രവർത്തിക്കുന്ന ചൈൽഡിനെയോ അല്ല.
നിങ്ങളുടെ ഇന്ററാക്ടീവ് ഷെല്ലിൽ ഭാവിയിലെ കമാൻഡുകൾ മാറ്റുകയാണ് ഉദ്ദേശ്യമെങ്കിൽ, ആ മാറ്റം ഷെല്ലിൽ ചെയ്യുക. ഒരു ടൂൾ മാത്രം മറ്റൊരു പാത ആവശ്യപ്പെടുന്നുവെങ്കിൽ, കാണിച്ചിരിക്കുന്നതുപോലെ അതിന്റെ പരിസ്ഥിതി subprocess വിളിക്ക് അടുത്ത് സൂക്ഷിക്കുക.