បញ្ជូនប្រូកស៊ីទៅដំណើរការ pip ដែលអ្នកបើក
ហៅ pip តាមរយៈអ្នកបកប្រែ Python ដែលបានកំណត់ ហើយផ្តល់ --proxy ជាអាគុយម៉ង់ subprocess ដាច់ដោយឡែក ជំនួសឱ្យការនាំចូលផ្នែកខាងក្នុងរបស់ pip។
នៅពេលដែលស្គ្រីបផ្គត់ផ្គង់ដែលមានស្រាប់ត្រូវការដំណើរការ pip តាមរយៈប្រូកស៊ី សូមបើក pip ជា subprocess។ អនុគមន៍ Python ខាងក្នុងរបស់ pip មិនមែនជា 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 ដែលកំពុងដំណើរការស្គ្រីប ដូច្នេះវាជៀសវាងការហៅ pip របស់ការដំឡើងផ្សេងទៀតពី PATH ដោយចៃដន្យ។
អាគុយម៉ង់នីមួយៗកាន់ធាតុបញ្ជីដាច់ដោយឡែក។ មិនត្រូវការ shell ទេ ហើយ URL ប្រូកស៊ីមិនត្រូវការសញ្ញាសម្រង់ shell បង្កប់បន្ថែមទេ។ check=True បង្កើន CalledProcessError ប្រសិនបើការដំឡើងបរាជ័យ ដែលអនុញ្ញាតឱ្យលំហូរការងារផ្គត់ផ្គង់ដោះស្រាយការបរាជ័យនោះ។
កំណត់រចនាសម្ព័ន្ធផ្លូវទាញយកនៅលើការហៅ pip នេះ ឬនៅក្នុងបរិស្ថាន subprocess របស់វា។ សម័យ Requests ដែលបានកំណត់នៅកន្លែងផ្សេងក្នុងកម្មវិធីមេមិនកំណត់ដំណើរការ pip ដាច់ដោយឡែកទេ។
បន្ទាប់ពីការដំឡើង បន្តវដ្តជីវិតបរិស្ថានធម្មតារបស់កម្មវិធី។ ការដំឡើងទៅក្នុងអ្នកបកប្រែដែលកំពុងដំណើរការរួចហើយមិនធានាថាការនាំចូល ឃ្លាំងសម្ងាត់ ឬផ្លូវបច្ចុប្បន្នរបស់វាឆ្លុះបញ្ចាំងកញ្ចប់ថ្មីភ្លាមៗនោះទេ។