Hỗ trợ SOCKS của pip yêu cầu phần phụ thuộc SOCKS tùy chọn phải có sẵn cho trình thông dịch Python đang chạy pip. Nếu trình thông dịch đó chỉ tới được chỉ mục gói qua SOCKS, hãy lấy phần phụ thuộc trước trên một máy đã kết nối khác.

Trên máy đã kết nối, chuẩn bị một thư mục wheel nhỏ:

python -m pip download --only-binary=:all: --dest wheelhouse PySocks

Chuyển thư mục đó sang máy đích, sau đó dùng trình thông dịch dự định của máy ấy cho bản cài đặt cục bộ:

python -m pip install --no-index --find-links wheelhouse PySocks

--no-index giữ bước chuẩn bị này trên các tệp được cung cấp. Nó không cố giải quyết vấn đề kết nối ban đầu bằng một yêu cầu chỉ mục khác.

Khi phần phụ thuộc đã có, có thể chọn tuyến SOCKS cho thao tác gói thực tế:

python -m pip install --proxy socks5h://proxy.example.net:1080 package_name

Đối với các lượt tải gói công khai được phép mà không cần xác thực proxy, hãy thay điểm cuối bằng một ứng viên từ danh sách proxy SOCKS5 và chọn gói mong muốn. Cách viết socks5h yêu cầu phân giải tên đích qua proxy; socks5 chọn phân giải đích cục bộ trong đường dẫn máy khách này.

Giữ bản cài đặt chuẩn bị và thao tác gói trên cùng một trình thông dịch và môi trường. Cài PySocks vào một Python khác để nguyên các import của pip đích. Kiểm tra hữu ích là lệnh python -m pip nào thực hiện công việc, không phải việc một terminal khác báo rằng PySocks đã được cài.

Bài viết liên quan