Я пытаюсь получить номер версии нескольких нескольких модулей, которые я использую. Что-то, что я могу хранить в переменной.
Как получить код версии модуля 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 )