使用pip,是否有可能找出当前安装的软件包的哪个版本?
我知道pip安装XYZ -升级,但我想知道是否有类似pip信息XYZ的东西。如果不是什么最好的方式来告诉我目前使用的版本。
使用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块的原因是,由于解析库名来处理版本,很少有库名会抛出错误。即使包变量将包含安装在您的环境中的所有库。
其他回答
使用——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 1.3现在也有一个列表命令:
$ pip list
argparse (1.2.1)
pip (1.5.1)
setuptools (2.1)
wsgiref (0.1.2)
您可以使用grep命令来查找。
pip show <package_name>|grep Version
例子:
pip show urllib3|grep Version
将只显示版本。
Metadata-Version: 2.0 版本:1.12
在windows上,你可以发出如下命令:
pip show setuptools | findstr "Version"
输出:
Version: 34.1.1
我刚刚在pip中发送了一个增强的拉请求Hugo Tavares说:
(以云为例)
$ pip show specloud
Package: specloud
Version: 0.4.4
Requires:
nose
figleaf
pinocchio