前言

本文以安装pylibmc为例
公司私有的nexus仓库,package version相比公有nexus仓库会少一些
在pip install pylibmc之前,会用pip install pylibmc==先查询nexus仓库有那些version

pip install pylibmc== 带来的问题

由于pip下载python package的特性,pip install pylibmc== 不指定version情况下,有0.0.0 version的package会直接下载,而不是输出Could not find a version的error信息

这个问题,虽然可以指定一个不存在的version (pip install pylibmc==blork)来解决,但是pip官方有提到,这种error信息输出是实验性质,21.1以后的version会有改动

Note that this command is experimental, and might change in the future!

因此依赖Could not find a version这个error信息,获取package version不是一个最好的解决方案

解决方案

pip version <= 20.3只能使用pip install pylibmc==blork,从error信息获取一个package所有version

pip version >= 21.2就能用pip index versions pylibmc的标准输出,获取一个package的version

个人建议,尽量把pip升级到>=21.2,用pip index versions command获取package version信息

解决方案参考: Python and pip, list all versions of a package that’s available?