Truyền proxy cho tiến trình pip mà bạn khởi chạy
Gọi pip thông qua trình thông dịch Python dự định và cung cấp --proxy như một đối số subprocess riêng thay vì nhập các thành phần bên trong của pip.
Khi một tập lệnh cấp phát hiện có cần chạy pip qua proxy, hãy khởi chạy pip như một subprocess. Các hàm Python bên trong của pip không phải là API ứng dụng được hỗ trợ.
import subprocess
import sys
subprocess.run([
sys.executable,
'-m', 'pip', 'install',
'--proxy', 'http://proxy.example:8080',
'example-package',
], check=True)
Dùng gói và điểm cuối proxy dự định. Đối với tải xuống gói công khai được cho phép qua một trung gian công khai, danh sách proxy HTTP cung cấp các ứng viên cho đối số proxy HTTP. sys.executable chọn trình thông dịch Python đang chạy tập lệnh, do đó tránh việc vô tình gọi pip của một bản cài đặt khác từ PATH.
Mỗi đối số chiếm một phần tử danh sách riêng. Không cần shell, và URL proxy không cần thêm một cặp dấu ngoặc kép shell nhúng. check=True ném CalledProcessError nếu cài đặt thất bại, cho phép quy trình cấp phát xử lý lỗi đó.
Cấu hình tuyến tải xuống trên lệnh gọi pip này hoặc trong môi trường subprocess của nó. Một phiên Requests được cấu hình ở nơi khác trong chương trình cha không cấu hình tiến trình pip riêng.
Sau khi cài đặt, tiếp tục vòng đời môi trường bình thường của ứng dụng. Cài đặt vào một trình thông dịch đang chạy không đảm bảo rằng các import, bộ nhớ đệm hoặc đường dẫn hiện tại của nó phản ánh gói mới ngay lập tức.