安装Adobe pdfservices-sdk时urllib3版本循环冲突如何解决
pdfservices-extract-sdk urllib3循环版本冲突解决方法
问题报错
安装配置Adobe pdfservices-sdk环境时出现循环版本冲突,报错信息如下:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. pdfservices-extract-sdk 1.0.0b1 requires urllib3==1.26.3, but you have urllib3 1.26.8 which is incompatible. Successfully installed urllib3-1.26.8
手动将urllib3降级到1.26.3后,又会被其他依赖要求必须升级到1.26.8,反复调整无法完成配置。
冲突根因
pdfservices-extract-sdk 1.0.0b1是beta测试版本,打包配置中错误硬编码了urllib3==1.26.3的精确版本要求,而1.26.3~1.26.8同属1.26.x安全更新分支,不存在API破坏性变更,没有实际运行时兼容问题,循环冲突是pip的依赖解析机制和sdk不合理的版本锁共同导致的。
操作步骤
- 新建干净虚拟环境隔离依赖,避免全局包干扰
# Windows 环境 python -m venv adobe_pdf_sdk_env adobe_pdf_sdk_env\Scripts\activate # macOS/Linux 环境 python3 -m venv adobe_pdf_sdk_env source adobe_pdf_sdk_env/bin/activate - 跳过依赖校验先安装sdk本体,避免安装阶段触发版本锁
pip install pdfservices-extract-sdk==1.0.0b1 --no-deps - 安装1.26.8版本urllib3
pip install urllib3==1.26.8 - 补装sdk所需的其余依赖,此时pip不会覆盖已经安装的urllib3版本
pip install pdfservices-extract-sdk==1.0.0b1 - 执行依赖校验,确认无缺失包即可正常使用
执行后仅会出现pdfservices-extract-sdk对urllib3版本要求的警告,不会影响实际代码运行。pip check
备选方案(适用于pip 23.1及以上版本)
可以直接使用pip原生的依赖覆盖参数,一步完成安装,无需分步操作:
pip install pdfservices-extract-sdk==1.0.0b1 urllib3==1.26.8 --override "urllib3==1.26.8"
注意:不要直接修改sdk安装目录下的配置文件跳过版本校验,后续sdk升级会覆盖自定义修改,上述方法已经可以稳定解决问题。
内容的提问来源于stack exchange,提问作者Hanley Soilsmith
相关产品推荐
相关产品推荐

