You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开启VPN时pip安装Python包报错的解决方案求助

问题描述

我将Python 3.10与Python 3.9安装在同一目录,最初提示pip版本过低,先后升级pip和Python版本后问题仍未解决。发现关闭VPN后pip可正常安装包,但关闭VPN后安装速度极慢,希望找到无需关闭VPN即可正常使用pip安装Python包的方法。

报错信息
ERROR: Exception:
Traceback (most recent call last):
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\cli\base_command.py", line 173, in _main
    status = self.run(options, args)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\cli\req_command.py", line 203, in wrapper
    return func(self, options, args)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\commands\install.py", line 315, in run
    requirement_set = resolver.resolve(
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 94, in resolve
    result = self._result = resolver.resolve(
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 472, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 341, in resolve
    self._add_to_criteria(self.state.criteria, r, parent=None)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 172, in _add_to_criteria
    if not criterion.candidates:
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_vendor\resolvelib\structs.py", line 151, in __bool__
    return bool(self._sequence)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 140, in __bool__
    return any(self)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 128, in <genexpr>
    return (c for c in iterator if id(c) not in self._incompatible_ids)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 29, in _iter_built
    for version, func in infos:
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 272, in iter_index_candidate_infos
    result = self._finder.find_best_candidate(
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\index\package_finder.py", line 851, in find_best_candidate
    candidates = self.find_all_candidates(project_name)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\index\package_finder.py", line 798, in find_all_candidates
    page_candidates = list(page_candidates_it)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\index\sources.py", line 134, in page_candidates
    yield from self._candidates_from_page(self._link)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\index\package_finder.py", line 758, in process_project_url
    html_page = self._link_collector.fetch_page(project_url)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\index\collector.py", line 490, in fetch_page
    return _get_html_page(location, session=self.session)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\index\collector.py", line 400, in _get_html_page
    resp = _get_html_response(url, session=session)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\index\collector.py", line 115, in _get_html_response
    resp = session.get(
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_vendor\requests\sessions.py", line 555, in get
    return self.request('GET', url, **kwargs)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_internal\network\session.py", line 454, in request
    return super().request(method, url, *args, **kwargs)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_vendor\requests\sessions.py", line 532, in request
    settings = self.merge_environment_settings(
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_vendor\requests\sessions.py", line 711, in merge_environment_settings
    env_proxies = get_environ_proxies(url, no_proxy=no_proxy)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_vendor\requests\utils.py", line 797, in get_environ_proxies
    if should_bypass_proxies(url, no_proxy=no_proxy):
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_vendor\requests\utils.py", line 781, in should_bypass_proxies
    bypass = proxy_bypass(parsed.hostname)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_vendor\requests\utils.py", line 102, in proxy_bypass
    return proxy_bypass_registry(host)
  File "D:\Program Files\Python\Python310\lib\site-packages\pip\_vendor\requests\utils.py", line 89, in proxy_bypass_registry
    if re.match(test, host, re.I):
  File "D:\Program Files\Python\Python310\lib\re.py", line 190, in match
    return _compile(pattern, flags).match(string)
  File "D:\Program Files\Python\Python310\lib\re.py", line 303, in _compile
    p = sre_compile.compile(pattern, flags)
  File "D:\Program Files\Python\Python310\lib\sre_compile.py", line 764, in compile
    p = sre_parse.parse(p, flags)
  File "D:\Program Files\Python\Python310\lib\sre_parse.py", line 948, in parse
    p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
  File "D:\Program Files\Python\Python310\lib\sre_parse.py", line 443, in _parse_sub
    itemsappend(_parse(source, state, verbose, nested + 1,
  File "D:\Program Files\Python\Python310\lib\sre_parse.py", line 511, in _parse
    sourceget()
  File "D:\Program Files\Python\Python310\lib\sre_parse.py", line 256, in get
    self.__next()
  File "D:\Program Files\Python\Python310\lib\sre_parse.py", line 245, in __next
    raise error("bad escape (end of pattern)",
re.error: bad escape (end of pattern) at position 12
解决方法

从报错信息判断,问题根源是VPN代理的no_proxy环境变量包含错误的正则表达式转义字符,导致pip调用正则解析时失败。以下是几种可行的解决办法:

  • 修复系统no_proxy配置
    打开系统环境变量设置,找到NO_PROXY或no_proxy变量,检查其值是否存在类似\的错误转义字符,直接删除或修正这类字符。比如把example\.com改成example.com,或者清空有问题的条目。

  • 给pip手动指定VPN代理

    • 临时使用:安装包时添加代理参数,命令格式为:
      pip install 你的包名 --proxy=http://VPN代理地址:端口
      
    • 永久配置:找到pip的配置文件(Windows为pip.ini,路径一般是%APPDATA%\pip\pip.ini;Linux/macOS为pip.conf,路径是~/.config/pip/pip.conf),添加以下内容:
      [global]
      proxy = http://VPN代理地址:端口
      
  • 搭配国内PyPI源使用
    国内源速度更快,结合VPN代理可兼顾稳定性和速度:

    • 临时使用:
      pip install 你的包名 -i https://pypi.tuna.tsinghua.edu.cn/simple --proxy=http://VPN代理地址:端口
      
    • 永久配置:在pip配置文件中添加:
      [global]
      index-url = https://pypi.tuna.tsinghua.edu.cn/simple
      proxy = http://VPN代理地址:端口
      
  • 重置pip网络配置
    如果之前的pip代理配置有问题,先执行以下命令清空:

    pip config unset global.proxy
    

    之后再重新设置正确的代理参数。


内容的提问来源于stack exchange,提问作者MXUne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:22:04