离线引导 pip 的 SOCKS 依赖
从一台联网机器传输 PySocks wheel,使目标解释器能够开始使用它的 SOCKS 代理。
pip 的 SOCKS 支持要求运行 pip 的 Python 解释器已经具备可选的 SOCKS 依赖。如果该解释器只能通过 SOCKS 访问软件包索引,请先在一台联网机器上取得这个依赖。
在联网机器上准备一个小型 wheel 目录:
python -m pip download --only-binary=:all: --dest wheelhouse PySocks
把该目录传输到目标机器,然后用它预定的解释器执行本地安装:
python -m pip install --no-index --find-links wheelhouse PySocks
--no-index 让这一引导步骤只使用所提供的文件。它不会通过再一次索引请求去解决最初的连通性问题。
依赖就绪之后,就可以为真正的软件包操作选择 SOCKS 路由:
python -m pip install --proxy socks5h://proxy.example.net:1080 package_name
对于无需代理认证的获准公共软件包下载,请把端点换成 SOCKS5 代理列表 中的候选地址,并选择所需的软件包。socks5h 这种写法要求 通过代理解析目标主机名;而 socks5 在这条客户端路径上选择本地解析目标。
让引导安装和软件包操作保持在同一个解释器和同一环境中。把 PySocks 装进另一个 Python 不会改变目标 pip 的导入。真正有用的检查是哪一条 python -m pip 命令在执行任务,而不是另一个终端是否声称 PySocks 已安装。