使用pip,是否有可能找出当前安装的软件包的哪个版本?

我知道pip安装XYZ -升级,但我想知道是否有类似pip信息XYZ的东西。如果不是什么最好的方式来告诉我目前使用的版本。


当前回答

我刚刚在pip中发送了一个增强的拉请求Hugo Tavares说:

(以云为例)

$ pip show specloud

Package: specloud
Version: 0.4.4
Requires:
nose
figleaf
pinocchio

其他回答

要使用Python代码完成此操作:

使用importlib.metadata.version

Python≥3.8

import importlib.metadata
importlib.metadata.version('beautifulsoup4')
'4.9.1'

Python≤3。7

(使用importlib_metadata.version)

!pip install importlib-metadata

import importlib_metadata
importlib_metadata.version('beautifulsoup4')
'4.9.1'

使用pkg_resources。分布

import pkg_resources
pkg_resources.get_distribution('beautifulsoup4').version
'4.9.1'
pkg_resources.get_distribution('beautifulsoup4').parsed_version
<Version('4.9.1')>

归功于sinoroc和mirekphd的评论。

还有一个叫做pip-check的工具,它可以让你快速浏览所有安装的包及其更新状态:

我自己没用过;只是偶然发现了这个SO问题,因为它没有被提及……

使用——outdated作为额外参数,你将得到你正在使用的包的当前版本和最新版本:

$ pip list --outdated
distribute (Current: 0.6.34 Latest: 0.7.3)
django-bootstrap3 (Current: 1.1.0 Latest: 4.3.0)
Django (Current: 1.5.4 Latest: 1.6.4)
Jinja2 (Current: 2.6 Latest: 2.8)

所以结合AdamKG的回答:

$ pip list --outdated | grep Jinja2
Jinja2 (Current: 2.6 Latest: 2.8)

也可以查看pip-tools: https://github.com/nvie/pip-tools

我刚刚在pip中发送了一个增强的拉请求Hugo Tavares说:

(以云为例)

$ pip show specloud

Package: specloud
Version: 0.4.4
Requires:
nose
figleaf
pinocchio

在windows上,你可以发出如下命令:

pip show setuptools | findstr "Version"

输出:

Version: 34.1.1