Python2.7项目requirements无virtualenv无法安装问题求助
问题原因分析
1. django-livesettings==1.4-14 安装报错:找不到setuptools_hg
这个版本的django-livesettings依赖Mercurial(Hg)版本控制系统拉取部分代码,setuptools_hg是setuptools的扩展工具,专门用于处理Hg仓库的包安装流程。
- Docker容器属于全新干净环境,默认不会预装
setuptools_hg;而你的virtualenv环境可能因历史安装、旧版setuptools自带,或之前手动安装过该工具,所以能顺利完成依赖安装。 - 当前PyPI生态中,这类依赖Hg的旧包已极少维护,新版pip/setuptools也不再默认包含这类小众扩展工具,直接安装自然会报错。
2. googlemaps==4.2.0 依赖requests版本冲突
googlemaps==4.2.0的依赖声明要求requests<3.0,>=2.20.0,但Python2.7从requests 2.20.0版本起就不再被支持——requests官方在该版本明确移除了Python2.7的兼容代码。
- 单独在容器shell安装requests时,pip会自动识别当前Python版本(2.7),自动安装Python2.7兼容的最高版本(比如
requests==2.19.1),因此不会报错。 - 批量安装requirements.txt时,pip会严格遵循
googlemaps的依赖要求寻找>=2.20.0的requests,而该版本系列完全不支持Python2.7,自然找不到符合条件的包,引发报错。 - 你的virtualenv环境可能提前安装了低版本requests,旧版pip的依赖冲突检测逻辑更宽松,或环境中存在兼容补丁,因此能绕过该问题。
内容的提问来源于stack exchange,提问作者phrfpeixoto
相关产品推荐
相关产品推荐

