ਜਦੋਂ ਕੋਈ ਮੌਜੂਦਾ provisioning ਸਕ੍ਰਿਪਟ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ pip ਚਲਾਉਣਾ ਚਾਹੁੰਦੀ ਹੈ, ਤਾਂ pip ਨੂੰ subprocess ਵਜੋਂ ਸ਼ੁਰੂ ਕਰੋ। pip ਦੇ ਅੰਦਰੂਨੀ Python ਫੰਕਸ਼ਨ ਸਮਰਥਿਤ ਐਪਲੀਕੇਸ਼ਨ API ਨਹੀਂ ਹਨ।

import subprocess
import sys

subprocess.run([
    sys.executable,
    '-m', 'pip', 'install',
    '--proxy', 'http://proxy.example:8080',
    'example-package',
], check=True)

ਇਚ्छਿਤ ਪੈਕੇਜ ਅਤੇ ਪ੍ਰੌਕਸੀ ਐਂਡਪੌਇੰਟ ਵਰਤੋ। ਜਨਤਕ ਵਿਚੋਲੇ ਰਾਹੀਂ ਮਨਜ਼ੂਰ ਜਨਤਕ ਪੈਕੇਜ ਡਾਊਨਲੋਡ ਲਈ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ HTTP ਪ੍ਰੌਕਸੀ ਆਰਗਿਊਮੈਂਟ ਲਈ ਉਮੀਦਵਾਰ ਦਿੰਦੀ ਹੈ। sys.executable ਉਹ Python ਇੰਟਰਪ੍ਰੀਟਰ ਚੁਣਦਾ ਹੈ ਜੋ ਸਕ੍ਰਿਪਟ ਚਲਾ ਰਿਹਾ ਹੈ, ਇਸ ਲਈ PATH ਤੋਂ ਕਿਸੇ ਹੋਰ ਇੰਸਟਾਲੇਸ਼ਨ ਦੇ pip ਨੂੰ ਅਚਾਨਕ ਕਾਲ ਕਰਨ ਤੋਂ ਬਚਿਆ ਜਾਂਦਾ ਹੈ।

ਹਰ ਆਰਗਿਊਮੈਂਟ ਵੱਖਰਾ ਸੂਚੀ ਤੱਤ ਲੈਂਦਾ ਹੈ। ਕੋਈ ਸ਼ੈੱਲ ਲੋੜੀਂਦਾ ਨਹੀਂ, ਅਤੇ ਪ੍ਰੌਕਸੀ URL ਨੂੰ ਵਾਧੂ ਜੋੜੀ ਐਂਬੈਡਿਡ ਸ਼ੈੱਲ ਕੋਟੇਸ਼ਨ ਦੀ ਲੋੜ ਨਹੀਂ। check=True ਇੰਸਟਾਲੇਸ਼ਨ ਫੇਲ੍ਹ ਹੋਣ 'ਤੇ CalledProcessError ਉਠਾਉਂਦਾ ਹੈ, ਜਿਸ ਨਾਲ provisioning ਵਰਕਫਲੋ ਉਸ ਫੇਲ੍ਹ ਨੂੰ ਸੰਭਾਲ ਸਕਦਾ ਹੈ।

ਡਾਊਨਲੋਡ ਮਾਰਗ ਇਸ pip ਕਾਲ 'ਤੇ ਜਾਂ ਇਸ ਦੇ subprocess ਵਾਤਾਵਰਨ ਵਿੱਚ ਸੰਰਚਿਤ ਕਰੋ। ਮੂਲ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਕਿਤੇ ਹੋਰ ਸੰਰਚਿਤ Requests ਸੈਸ਼ਨ pip ਦੀ ਵੱਖਰੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸੰਰਚਿਤ ਨਹੀਂ ਕਰਦਾ।

ਇੰਸਟਾਲੇਸ਼ਨ ਤੋਂ ਬਾਅਦ ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਆਮ ਵਾਤਾਵਰਨ ਜੀਵਨ-ਚੱਕਰ ਜਾਰੀ ਰੱਖੋ। ਪਹਿਲਾਂ ਤੋਂ ਚੱਲ ਰਹੇ ਇੰਟਰਪ੍ਰੀਟਰ ਵਿੱਚ ਇੰਸਟਾਲ ਕਰਨਾ ਇਸ ਦੀ ਗਾਰੰਟੀ ਨਹੀਂ ਦਿੰਦਾ ਕਿ ਇਸ ਦੇ ਮੌਜੂਦਾ ਆਯਾਤ, ਕੈਸ਼ ਜਾਂ ਮਾਰਗ ਨਵੇਂ ਪੈਕੇਜ ਨੂੰ ਤੁਰੰਤ ਦਰਸਾਉਣਗੇ।

ਸੰਬੰਧਿਤ ਲੇਖ