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