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

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


当前回答

在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 list也可以被告知将其输出格式化为json。 这可能是一种更安全的解析版本的方法。

pip list --no-index --format=json | \
  jq -r '.[] | select(.name=="Jinja2").version'
# 2.10.1

在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

最简单的方法是:

import jinja2
print jinja2.__version__

对于Windows,你可以

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

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


要使用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的评论。