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

VSCode中venv环境requests请求报错,全局Python正常的问题排查

虚拟环境venv中requests请求报错的排查与解决方法

1. 彻底清理并重装虚拟环境中的requests依赖

虽然你已经重装过requests,但可能残留了损坏文件或依赖冲突:

  • 激活虚拟环境后,执行 pip uninstall -y requests 彻底卸载
  • 手动删除虚拟环境目录下 lib/pythonX.X/site-packages 中的 requests 文件夹和 requests-*.dist-info 文件夹(X.X对应你的Python版本)
  • 重新安装requests:pip install requests
  • 对比全局环境的 requests 和 urllib3 版本,若不一致则指定版本安装,比如 pip install urllib3==1.26.15(替换为全局环境的版本号)

2. 修复VSCode的虚拟环境解释器配置

VSCode可能缓存了旧的解释器路径或未正确识别venv:

  • 按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(Mac),输入 Python: Select Interpreter,重新选择虚拟环境内的Python解释器(路径类似 ./venv/Scripts/python.exe 或 ./venv/bin/python)
  • 若仍有问题,删除项目根目录下的 .vscode 文件夹(提前备份settings.json),重启VSCode后重新配置解释器

3. 排查虚拟环境的SSL证书问题

全局环境可能使用系统SSL证书,而venv内的certifi包异常:

  • 升级certifi:pip install --upgrade certifi
  • 在代码中指定certifi的证书路径测试:
    import requests
    import certifi
    response = requests.get("https://example.com", verify=certifi.where())
    print(response.status_code)
    
  • 执行 pip show certifi 查看证书文件路径,确认该路径下的 cacert.pem 文件存在且完整

4. 检查虚拟环境的网络代理设置

虚拟环境可能未继承全局代理配置,或者存在冲突:

  • 若全局使用代理,在代码中手动配置代理测试:
    import requests
    proxies = {
        "http": "http://your-proxy-address:port",
        "https": "https://your-proxy-address:port"
    }
    response = requests.get("https://example.com", proxies=proxies)
    
  • 检查虚拟环境的pip配置文件:Windows下删除 venv/Scripts/pip.ini,Linux/Mac下删除 venv/bin/pip.conf,避免代理配置冲突

5. 修复虚拟环境的文件权限问题

venv文件夹权限不足可能导致requests无法读取依赖文件:

  • Windows:右键venv文件夹 → 属性 → 安全 → 给当前用户添加「完全控制」权限
  • Linux/Mac:执行 chmod -R 755 ./venv 赋予读写执行权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:40:00