23

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

4

2 回答 2

28
>>> import pkg_resources
>>> pkg_resources.get_distribution("PIL").version
'1.1.7'
于 2012-01-16T14:17:44.203 回答
1

我发现使用各种可用的工具(包括这个其他答案pkg_resources提到的最好的工具)非常不可靠,因为它们中的大多数并不涵盖所有情况。例如内置模块和未安装但只是添加到 python 路径的模块(例如通过您的 IDE)。由于我们需要一种可靠的方法来获取任何包、模块或子模块的版本,因此我最终编写了getversion。使用起来非常简单:

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

有关详细信息,请参阅文档

于 2019-07-06T00:46:16.857 回答