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

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


当前回答

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块的原因是,由于解析库名来处理版本,很少有库名会抛出错误。即使包变量将包含安装在您的环境中的所有库。

其他回答

要使用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 show在python 3.7中工作:

pip show selenium
Name: selenium
Version: 4.0.0a3
Summary: Python bindings for Selenium
Home-page: https://github.com/SeleniumHQ/selenium/
Author: UNKNOWN
Author-email: UNKNOWN
License: Apache 2.0
Location: c:\python3.7\lib\site-packages\selenium-4.0.0a3-py3.7.egg
Requires: urllib3
Required-by:

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

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

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

在PowerShell中使用以下命令:

皮普名单| findstr < PackageName >

示例:- pip list | findstr requests

输出:请求2.18.4

在pip 1.3中,有一个pip show命令。

$ pip show Jinja2
---
Name: Jinja2
Version: 2.7.3
Location: /path/to/virtualenv/lib/python2.7/site-packages
Requires: markupsafe

在旧版本中,pip freeze和grep可以很好地完成这项工作。

$ pip freeze | grep Jinja2
Jinja2==2.7.3

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

(以云为例)

$ pip show specloud

Package: specloud
Version: 0.4.4
Requires:
nose
figleaf
pinocchio