Как получить код версии модуля python через код?

Я пытаюсь получить номер версии нескольких нескольких модулей, которые я использую. Что-то, что я могу хранить в переменной.

Ответ 1

Обобщенный ответ от Мэтта, выполните dir(YOURMODULE) и найдите __version__, VERSION или VERSION. Большинство модулей, таких как __version__, но я думаю, что numpy использует version.version

Ответ 2

Используйте pkg_resources (часть setuptools). Все, что установлено из PyPI, по крайней мере, имеет номер версии. Никаких дополнительных пакетов/модулей не требуется.

>>> import pkg_resources
>>> pkg_resources.get_distribution("simplegist").version
'0.3.2'

Ответ 3

Я думаю, это зависит от модуля. Например, Django имеет переменную VERSION, которую вы можете получить из django.VERSION, sqlalchemy имеет переменную __version__, которую вы можете получить из sqlalchemy.__version__.

Ответ 4

Некоторые модули (например, azure) не предоставляют строку __version__.

Если пакет был установлен с помощью пипа, следующее должно работать.

# say we want to look for the version of the "azure" module
import pip
for m in pip.get_installed_distributions():
    if m.project_name == 'azure':
        print(m.version)

Ответ 5

Начиная с Python 3.8, importlib.metadata можно использовать вместо pkg_resources для извлечения версии сторонних пакетов, установленных с помощью таких инструментов, как pip:

from importlib.metadata import version
version('wheel')
# '0.33.4'

Ответ 6

 import sys
 import matplotlib as plt
 import pandas as pd
 import sklearn as skl
 import seaborn as sns

 print(sys.version)
 print(plt.__version__)
 print(pd.__version__)
 print(skl.__version__)
 print(sns.__version__)

Приведенный выше код показывает версии соответствующих модулей: Пример O/P:

3.7.1rc1 (v3.7.1rc1: 2064bcf6ce, 26 сентября 2018, 14:21:39) [MSC v.1914 32 бит (Intel)] 3.1.0 0.24.2 0.21.2 0.9.0 (sys показывает версию python )