Подтвердить что ты не робот

Получение версии пакета с помощью pkg_resources?

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

Смотрите документацию для деталей.