pip安装时诡异的静默版本陷阱
2025年4月13日大约 1 分钟
刚才碰上个很诡异的pip包版本问题:用ragflow-sdk
,搞半天发现实际行为有问题,与文档不一致。再搞半天发现我这边装了个 0.13 的包,但是 pypi 上显示这个包已经升级到了 0.17.
一开始我怀疑是自己设置的国内镜像的问题,但没有设置镜像,用的就是pypi的官方镜像。
虽然本地环境是miniconda
,但这个不应该影响 pip 的安装。
最后没办法,从pypi手动下载了 0.17.0 的包,然后手动安装,发现了问题所在:
(rag) PS C:\devLocal\outlineRAG> pip install C:\Users\mt\Downloads\ragflow_sdk-0.17.2.tar.gz
......
ERROR: Package 'ragflow-sdk' requires a different Python: 3.13.2 not in '<3.13,>=3.10'
显然,旧版本的ragflow-sdk 0.13
是支持python 3.13的,或者说大概率是没有仔细写python版本声明,随便装。 新版(0.17)可能是遇到了问题,就写了python版本声明,要求python版本在3.10到3.13之间,(但可能又没仔细考虑小版本的问题),拒绝了我安装的默认版本3.13.2
. 于是 pip 在解析的时候,就非常头铁的做了结论: 新版python只能安装旧版的sdk,并且这事儿不用通知用户
然后我的40分钟就这么没了。
注
当然,这个本质还是ragflow
官方太不讲究,不校验sdk版本,pip包的声明也没好好写。