La prise en charge de SOCKS par pip exige que la dépendance SOCKS facultative soit disponible pour l'interpréteur Python qui exécute pip. Si cet interpréteur ne peut atteindre l'index des paquets que par SOCKS, récupérez d'abord la dépendance sur une autre machine connectée.

Sur la machine connectée, préparez un petit répertoire de wheels :

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

Transférez ce répertoire vers la machine cible, puis utilisez son interpréteur prévu pour l'installation locale :

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

--no-index maintient cette étape de préparation sur les fichiers fournis. Il ne cherche pas à résoudre le problème de connectivité d'origine par une nouvelle requête à l'index.

Une fois la dépendance disponible, la route SOCKS peut être choisie pour l'opération réelle sur le paquet :

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

Pour les téléchargements publics de paquets autorisés sans authentification de proxy, remplacez le point de terminaison par un candidat de la liste de proxys SOCKS5 et sélectionnez le paquet voulu. L'orthographe socks5h demande la résolution du nom de destination par le proxy ; socks5 choisit la résolution locale de la destination dans ce chemin client.

Gardez l'installation de préparation et l'opération sur le paquet sur le même interpréteur et dans le même environnement. Installer PySocks dans un autre Python laisse les imports du pip cible inchangés. La vérification utile est de savoir quelle commande python -m pip fait le travail, et non si un autre terminal signale que PySocks est installé.

Articles similaires