pip 23.2本地包安装失败:防火墙代理下依赖获取异常
问题分析
pip 23.2及以上版本调整了本地源码包的安装逻辑:执行pip install ./本地包路径时,pip自身的代理参数仅作用于自身的包下载环节,但本地包构建过程中setuptools会单独发起依赖请求,这部分请求没有继承pip的代理配置,导致防火墙环境下出现SSL连接失败,无法获取如setuptools这类依赖包。
解决方案
1. 全局设置代理环境变量
让setuptools能读取到代理配置,在执行安装命令前先设置环境变量:
- Linux/macOS:
export HTTP_PROXY=http://你的代理地址:端口 export HTTPS_PROXY=http://你的代理地址:端口 pip install ./beautifulsoup4-4.12.2
- Windows CMD:
set HTTP_PROXY=http://你的代理地址:端口 set HTTPS_PROXY=http://你的代理地址:端口 pip install ./beautifulsoup4-4.12.2
- Windows PowerShell:
$env:HTTP_PROXY = "http://你的代理地址:端口" $env:HTTPS_PROXY = "http://你的代理地址:端口" pip install ./beautifulsoup4-4.12.2
2. 用pip参数传递代理给setuptools
pip 23.2+支持通过--config-settings将代理直接传递给构建流程:
pip install ./beautifulsoup4-4.12.2 --proxy=你的代理地址:端口 --config-settings=installer.http-proxy=http://你的代理地址:端口 --config-settings=installer.https-proxy=http://你的代理地址:端口
3. 降级pip到23.2之前的版本
如果不需要新版本特性,可降级回正常版本:
pip install pip==23.1.2 --proxy=你的代理地址:端口
之后再安装本地包即可恢复正常。
4. 预先安装依赖包
手动先满足本地包的依赖要求,再安装本地包:
pip install setuptools>=40.8.0 --proxy=你的代理地址:端口 pip install ./beautifulsoup4-4.12.2 --proxy=你的代理地址:端口
内容的提问来源于stack exchange,提问作者Fabri Ba
相关产品推荐
相关产品推荐

