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 ଆରମ୍ଭ କରିଥିବା shell କୁ ଅଦ୍ୟତନ କରେ ନାହିଁ, ଅସମ୍ପୃକ୍ତ ଆପ୍ଲିକେସନ କିମ୍ବା ପୂର୍ବରୁ ଚାଲୁଥିବା ଚାଇଲ୍ଡକୁ ମଧ୍ୟ ନୁହେଁ।
ଉଦ୍ଦେଶ୍ୟ ଯଦି ଆପଣଙ୍କ ଇଣ୍ଟରାକ୍ଟିଭ shell ରେ ଭବିଷ୍ୟତ କମାଣ୍ଡ ବଦଳାଇବା, ତେବେ ସେହି ପରିବର୍ତ୍ତନ shell ରେ କରନ୍ତୁ। ଯଦି କେବଳ ଏକ ଆରମ୍ଭ କରାଯାଇଥିବା ଉପକରଣକୁ ଅଲଗା ପଥ ଆବଶ୍ୟକ, ଦେଖାଯାଇଥିବା ପରି ଏହାର ପରିବେଶକୁ subprocess କଲ ପାଖରେ ରଖନ୍ତୁ।