使用pip,是否有可能找出当前安装的软件包的哪个版本?
我知道pip安装XYZ -升级,但我想知道是否有类似pip信息XYZ的东西。如果不是什么最好的方式来告诉我目前使用的版本。
使用pip,是否有可能找出当前安装的软件包的哪个版本?
我知道pip安装XYZ -升级,但我想知道是否有类似pip信息XYZ的东西。如果不是什么最好的方式来告诉我目前使用的版本。
当前回答
PIP list也可以被告知将其输出格式化为json。 这可能是一种更安全的解析版本的方法。
pip list --no-index --format=json | \
jq -r '.[] | select(.name=="Jinja2").version'
# 2.10.1
其他回答
在windows上,你可以发出如下命令:
pip show setuptools | findstr "Version"
输出:
Version: 34.1.1
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:
在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
您可以使用grep命令来查找。
pip show <package_name>|grep Version
例子:
pip show urllib3|grep Version
将只显示版本。
Metadata-Version: 2.0 版本:1.12
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块的原因是,由于解析库名来处理版本,很少有库名会抛出错误。即使包变量将包含安装在您的环境中的所有库。