一般来说,使用pip install安装包的时候,可能是不关心具体安装的是哪个版本的。或者说,只要是安装的是最新的版本就好。但是,这样操作往往可能会产生版本冲突问题。

苏南大叔:pip安装包,如何查询到对应包所有可用版本号? - pip-list-package-versions
pip安装包,如何查询到对应包所有可用版本号?(图4-1)

大家好,这里是苏南大叔的“程序如此灵动”博客。这里记录苏南大叔和一些程序代码的事情。本文中,苏南大叔和大家分享的是:如何得到某个pip包的所有可能版本号,以便有选择性的安装相应的python软件包。

本文测试环境:win10python@3.6.8pip@21.3.1。友情出镜的软件包是neo4j-driver

基本情况

基本情况就是,苏南大叔安装了最新的neo4j的社区版,版本号是4.4.3。然而,使用pip install neo4j-driver得到的软件包并不能适应这个最新的neo4j@4.4.3。也就是说,苏南大叔需要主动指定neo4j-driver的版本号,以适应neo4j软件。

当然,本文中,neo4j-drive仅仅是友情出镜,并不是主角。可以通过pip show命令查看当前对应包的具体信息。

苏南大叔:pip安装包,如何查询到对应包所有可用版本号? - pip-show
pip安装包,如何查询到对应包所有可用版本号?(图4-2)

解决方案就是去故意触发一个pip install错误,然后对应的错误提示信息里面,就有所需要的版本信息列表。

解决方案一

第一个方案就是:

pip install <package>==

也就是说,不知道合适的版本号是啥,就留空这个版本号。

结果,对于本文友情出镜的neo4j-driver来说,这个方案失败了。因为它竟然解析出了版本号0.0.0。顺利安装出来了一个版本。

苏南大叔:pip安装包,如何查询到对应包所有可用版本号? - 触发列表
pip安装包,如何查询到对应包所有可用版本号?(图4-3)

解决方案二(推荐)

第二个方案就是:

pip install <package>==999999999999

也就是说,不知道合适的版本号是啥,就给出一个根本不可能存在的版本号。所以,这个99999也就是个虚数,只要是个根本不可能的版本号就可以。

对于本文友情出镜的neo4j-driver来说,本方案成功了,成功的列出了所有可用的版本号。然后记得卸载当前(不主动卸载的话,安装过程中,也会卸载掉已经安装的文件包),然后再选择对应的版本号安装。

pip uninstall <package>
pip install <package>==<选好的版本号>

苏南大叔:pip安装包,如何查询到对应包所有可用版本号? - 安装选择好的版本号
pip安装包,如何查询到对应包所有可用版本号?(图4-4)

相关链接

总结

pip安装的时候,有很多命令可以使用。本文中的需求,目前似乎没有官方正式的命令,解决这个问题。但是,可以通过主动触发错误,来获得同样的效果。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。