Получить версию пакета, используя pkg_resources? - PullRequest
21 голосов
/ 16 января 2012

Каков рекомендуемый способ получения версии пакета в $ PYTHONPATH или sys.path? Я помню, что модуль pkg_resource имеет некоторые функции для этого, но я не могу найти какую-либо связанную информацию. Пожалуйста, не указывайте мне решение с использованием файла version.py и каким-либо образом его читайте. Использование pkg_resources - путь, но как именно?

Ответы [ 2 ]

23 голосов
/ 16 января 2012
>>> import pkg_resources
>>> pkg_resources.get_distribution("PIL").version
'1.1.7'
0 голосов
/ 06 июля 2019

Я нашел довольно ненадежным использование различных доступных инструментов (включая лучший pkg_resources, упомянутый этим другим ответом ), так как большинство из них не покрывают все случаи. Например, встроенные модули и модули не установлены, а просто добавлены в путь к Python (например, вашей IDE). Так как нам нужен был надежный способ получить версию любого пакета, модуля или субмодуля, я закончил тем, что написал getversion . Это довольно просто в использовании:

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

Подробнее см. Документацию .

...