使用pkg_resources获取包版本?

时间:2012-01-16 13:26:42

标签: python pkg-resources

在$ PYTHONPATH或sys.path中获取包的包版本的建议方法是什么?我记得pkg_resource模块有一些功能,但我找不到任何相关信息。请不要指向我使用version.py文件并以某种方式阅读它的解决方案。使用pkg_resources是要走的路,但究竟是怎么回事?

2 个答案:

答案 0 :(得分:23)

>>> import pkg_resources
>>> pkg_resources.get_distribution("PIL").version
'1.1.7'

答案 1 :(得分:0)

我发现使用各种可用工具(包括this other answer中提到的最好的pkg_resources)非常不可靠,因为其中大多数工具无法涵盖所有​​情况。例如,内置模块和未安装的模块,而是仅添加到python路径(例如,通过您的IDE)。由于我们需要一种可靠的方法来获取 any 软件包,模块或子模块的版本,因此我最终写了getversion。使用起来非常简单:

from getversion import get_module_version
import foo
version, details = get_module_version(foo)

有关详细信息,请参见documentation