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

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


当前回答

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

(以云为例)

$ pip show specloud

Package: specloud
Version: 0.4.4
Requires:
nose
figleaf
pinocchio

其他回答

您可以使用grep命令来查找。

pip show <package_name>|grep Version

例子:

pip show urllib3|grep Version

将只显示版本。

Metadata-Version: 2.0 版本:1.12

PIP list也可以被告知将其输出格式化为json。 这可能是一种更安全的解析版本的方法。

pip list --no-index --format=json | \
  jq -r '.[] | select(.name=="Jinja2").version'
# 2.10.1
import pkg_resources
packages = [dist.project_name for dist in pkg_resources.working_set]
try:
   for count, item in enumerate(packages):
      print(item, pkg_resources.get_distribution(item).version)
except:
    pass here

这些凹痕可能并不完美。我使用Try- Except块的原因是,由于解析库名来处理版本,很少有库名会抛出错误。即使包变量将包含安装在您的环境中的所有库。

对于Windows,你可以

打开CMD,输入python,按enter。 输入导入并按enter。 输入._version__并按enter。

正如你在这里的屏幕截图中看到的,我使用这种方法来检查串行模块的版本。


这里没有提到用户使用的是哪种操作系统(Windows/Linux/Mac)

因为有几个答案将完美地工作在Mac和Linux。

如果用户试图在windows上查找python包的版本,可以使用下面的命令。

在PowerShell中使用以下命令:

皮普名单| findstr < PackageName >

示例:- pip list | findstr requests

输出:请求2.18.4