跳到正文

pip 怎么设置代理:--proxy、pip.conf 和环境变量

让 pip 通过代理下载包:单条命令、保存的设置、环境变量、它们被读取的顺序、怎么关掉,以及怎么确认真的在用。

代理改变什么,不改变什么

代理只改变你的电脑到包索引之间的网络路径,不改变 pip 从哪个索引下载:那是单独的 --index-url 设置,所以代理和镜像是两回事。本文讲 pip 命令本身;如果要在使用 requests 库的 Python 代码里用代理,请看 requests 那篇指南。

三种设置方式,以及谁优先

pip 配置文档给出的顺序是:命令行选项最优先,其次是环境变量,最后是配置文件。在配置文件里,针对单个命令的小节(比如 [install])会覆盖 [global] 里的同名设置。所以命令行里写的 --proxy 总是胜过文件里保存的代理。临时试一下用命令行,日常使用写进文件。

一条命令用 --proxy

pip 用户指南把 --proxy 的写法定为 scheme://[user:passwd@]proxy.server:port。用 Proxy302 的 HTTP 端口时 scheme 写 http。用户指南里运行 pip 的方式是 python -m pip,这样能确保用的是那个 Python 自带的 pip;Windows 上用 py 启动器同理(py -m pip)。什么都不会保存:下一条命令又会直连。

一条命令用 --proxy:示例

python -m pip install --proxy http://USERNAME:PASSWORD@HOST:PORT requests

请把 HOST、PORT、USERNAME 和 PASSWORD 换成「我的资产」里的值。

账号和密码

如果账号或密码里有 @、:、/ 这类字符,要写成百分号编码:@ 写成 %40,: 写成 %3A,/ 写成 %2F。pip 的文档没有说明这条规则,所以请用下面的方法验证。直接从「我的资产」复制比手打更稳妥。写在命令里的密码会留在终端历史里,写在配置文件里的密码,能读到那个文件的人都能看到。

写进 pip 配置文件

最简单的办法是 pip config 命令:pip config set global.proxy ... 会替你写好,pip config unset global.proxy 则删除。不加 --user、--global 或 --site 时,如果当前有虚拟环境且它的配置文件存在,pip 用那个文件,否则用用户级文件。想手动编辑的话,用户级文件在 Linux 上是 $HOME/.config/pip/pip.conf,Windows 上是 %APPDATA%\pip\pip.ini,macOS 上如果存在 $HOME/Library/Application Support/pip 文件夹就用其中的文件,否则是 $HOME/.config/pip/pip.conf。文件里的选项名就是长选项名去掉前面的短横线,所以 --proxy 写成 proxy。pip config debug 会列出哪些文件存在以及每个文件里的值,是找到这个文件最快的办法。

用 pip config 保存:示例

python -m pip config set global.proxy http://USERNAME:PASSWORD@HOST:PORT
python -m pip config list

请把 HOST、PORT、USERNAME 和 PASSWORD 换成「我的资产」里的值。

pip.conf 里的同一个设置:示例

[global]
proxy = http://USERNAME:PASSWORD@HOST:PORT

请把 HOST、PORT、USERNAME 和 PASSWORD 换成「我的资产」里的值。

环境变量

用户指南列出了标准变量 http_proxy、https_proxy 和 no_proxy。配置文档还说明,任何选项都可以写成 PIP_ 加大写的选项名,所以 PIP_PROXY 也行。如果环境里已经设了代理,而你希望 pip 不理它,加上 --no-proxy-env,pip 就不会从环境变量读取代理配置。Windows 命令提示符里用 set,不用 export。

只对当前窗口的环境变量:示例

export https_proxy=http://USERNAME:PASSWORD@HOST:PORT
export http_proxy=http://USERNAME:PASSWORD@HOST:PORT
export no_proxy=localhost,127.0.0.1
python -m pip install requests

请把 HOST、PORT、USERNAME 和 PASSWORD 换成「我的资产」里的值。

代理还是镜像?

--proxy 改变路径,--index-url 改变 pip 去问的地址。配置文档就用 pip config set global.index-url 作为后者的示例。两者可以同时使用,各设各的。如果不用代理 pip 就能连上你要的索引,那根本不需要代理。

SOCKS5

pip 用户指南和命令行参考只给出了 scheme://[user:passwd@]proxy.server:port 这一种写法,没有说 pip 接受哪些 scheme,也没有说 SOCKS 是否需要额外安装包。所以本文只用 HTTP。生成 Proxy302 代理时协议请选 HTTP。

怎么关掉代理

运行 pip config unset global.proxy(小节名要和你设置时一致),再用 pip config list 看还剩什么。如果代理仍然生效,在这个终端里取消 http_proxy 和 https_proxy 变量。只想这一次不用、又不想改任何东西,就加 --no-proxy-env 忽略这些变量。按配置文档的说法,把 PIP_CONFIG_FILE 设成 os.devnull 会禁用所有配置文件的加载,用来测试不带你已保存设置的情形很方便。

怎么确认 pip 在用代理

  1. 看看现在设了什么

    运行 python -m pip config list,它会显示当前生效的配置;python -m pip config debug 会显示哪些文件存在、每个文件里有什么。

  2. 用 curl 看出口地址

    下面的第二条命令会显示网站通过同一个代理看到的 IP、国家和网络。

  3. 带更多输出下载一个小包

    加上 -v 会输出更多内容(最多可以用三次)。设了代理能下载,把代理地址故意写错就失败,说明 pip 确实在用它。

确认 pip 在用代理:示例

python -m pip config list
curl -x http://USERNAME:PASSWORD@HOST:PORT https://ipinfo.io/json
python -m pip download six --no-deps -d ./pip-test -v

请把 HOST、PORT、USERNAME 和 PASSWORD 换成「我的资产」里的值。

常见错误

• 407 Proxy Authentication Required:代理拒绝了账号或密码。请重新复制,并检查百分号编码。

• ProxyError,或者连接超时:HOST 或 PORT 不对,或者租期已结束。用上面的 curl 命令测同一个地址。pip 参考文档写明默认套接字超时是 15 秒、重试 5 次,可以用 --timeout 和 --retries 修改。

• pip 不理这个设置:运行 pip config list,看看是不是命令行里的 --proxy、PIP_PROXY 变量,或 [install] 小节覆盖了你改的那一处。

• 公司自己的索引里的包装不上:把它的主机加进 no_proxy 变量,让 pip 直接连。

用 Proxy302 怎么做

这里的每条命令都只需要 Proxy302 代理的主机、端口、账号和密码。pip 用的是 HTTP 地址,所以生成代理时协议选 HTTP。动态住宅流量按 GB 计费,出口国家在生成代理时设置;HTTP 在 proxy.proxy302.com 的 2222 端口,SOCKS5 在 3333 端口。静态 ISP IP 在整个租期内固定、不轮换,适合希望每次都从同一个地址出去的工具。HTTP 还是 SOCKS5 在购买时选择,一个 IP 只带一种协议。

用 Proxy302 怎么做:步骤

  1. 第 1 步

    打开动态住宅页面,选择线路,「协议」保持 HTTP,然后点击「确认费用并生成」。

  2. 第 2 步

    打开「我的资产」(控制台里放着你买到的全部代理),复制 HOST(地址)、PORT(端口)、USERNAME(账号)和 PASSWORD(密码)。「连接工具」页里有填好你自己连接信息的现成示例。

  3. 第 3 步

    把这些值填进上面的命令。

  4. 第 4 步

    通过代理访问 https://ipinfo.io/json 确认出口。

  5. 第 5 步

    在中国大陆,先在「连接工具」页打开辅助工具,使用代理期间保持开着。

价格与限制

低价线路每 GB 收费 US$1.50,100 GB 套餐每 GB US$1.35,300 GB 每 GB US$1.20。静态 ISP IP 一天 US$0.50,30 天 US$7.99。不提供免费试用,最小购买单位为 1 GB,或一个 IP 一天。可用的出口位置每天都会变化。

常见问题

代理和 PyPI 镜像是一回事吗?

不是。代理改变网络路径,--index-url 改变 pip 下载的地址。两者分别设置,可以一起用。

命令行和配置文件谁优先?

按 pip 配置文档,命令行最优先,其次环境变量,最后配置文件。

怎么只对一个项目使用代理?

激活该项目的虚拟环境,再运行 pip config set --site global.proxy ...:--site 把修改限定在当前环境的配置文件里。

pip 能用 SOCKS5 代理吗?

我们读过的 pip 文档没有写 SOCKS。请使用 HTTP 代理地址。

参考资料

5
  1. pip docs: User Guide (using a proxy server)

    官方文档 · 确认日期:

    Read on 2 November 2026: the Proxy Server section says to use --proxy in the form scheme://[user:passwd@]proxy.server:port, or proxy in a configuration file, or the standard environment variables http_proxy, https_proxy and no_proxy, and --no-proxy-env to ignore proxies set through them; pip is run as python -m pip.

    SOCKS is not mentioned. Configuration details are only pointers to the Configuration page.

  2. pip docs: Configuration

    官方文档 · 确认日期:

    Read on 2 November 2026: file locations per system, loading order (global, user, site, then PIP_CONFIG_FILE); a command section such as [install] overrides [global]; precedence command line, then environment variables, then configuration files; file keys are long option names without the leading dashes; environment variables are PIP_ plus the upper-case name; PIP_CONFIG_FILE=os.devnull disables loading all configuration files.

  3. pip docs: pip command reference (general options)

    官方文档 · 确认日期:

    Read on 2 November 2026: --proxy "Specify a proxy in the form scheme://[user:passwd@]proxy.server:port"; --no-proxy-env "Do not read proxy configuration from environment variables"; --timeout (default 15 seconds); --retries (default 5); -v can be used up to 3 times.

    The page does not list the accepted schemes and does not mention percent-encoding.

  4. pip docs: pip config

    官方文档 · 确认日期:

    Read on 2 November 2026: list shows the active configuration; debug shows which configuration files exist and the values in each; set and unset take command.option keys (example: pip config set global.index-url ...); --user, --global and --site pick the file; without them the virtual environment file is used if active and present, otherwise the user file.

  5. Proxy302 product facts and price list

    产品观察 · 确认日期:

    Product facts file of the site (values checked against the console, the backend and the price table on 18-19 October 2026): products, prices in US$ (1 PTC = US$1), lease terms, protocols and ports, countries, quantity limits, no free trial.

准备好试试了吗?

注册账号、充值一次,就能选动态住宅、静态 ISP 或数据中心 IP,几分钟配进你的浏览器。