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 ಕರೆಯ ಪಕ್ಕದಲ್ಲಿ ಇರಿಸಿ.