Как проверить версию модулей Python?

Использовать переданные свойства System.Windows.Forms.ScrollEventArgs «свойства OldValue и NewValue» для определения направления прокрутки.

524
задан Jakub Kukul 28 July 2017 в 19:56
поделиться

3 ответа

Предыдущие ответы не решили мою проблему, но этот код сделал:

import sys 
for name, module in sorted(sys.modules.items()): 
  if hasattr(module, '__version__'): 
    print name, module.__version__ 
15
ответ дан tashuhka 28 July 2017 в 19:56
поделиться

Построение ответ Jakub Kukul я нашел более надежный способ решить эту проблему.

основная проблема того подхода, это требует, чтобы пакеты были установлены "традиционно" (и это не включает использование pip install --user), или быть в системном ПУТИ при инициализации Python.

Для обхождения этого можно использовать pkg_resources.find_distributions(path_to_search). Это в основном ищет дистрибутивы, которые были бы разрешены к ввозу, если бы path_to_search был в системном ПУТИ.

Мы можем выполнить итерации через этот генератор как это:

avail_modules = {}
distros = pkg_resources.find_distributions(path_to_search)
for d in distros:
    avail_modules[d.key] = d.version

Это возвратит словарь, имеющий модули как ключи и их версия как значение. Этот подход может быть расширен на намного больше, чем номер версии.

Благодаря Jakub Kukul для того, чтобы указывать на правильное направление

0
ответ дан 22 November 2019 в 22:07
поделиться

В версии Python 3.8 существует новое metadata модуль в importlib пакет, который может сделать это также.

Вот пример из документов:

>>> from importlib.metadata import version
>>> version('requests')
'2.22.0'
0
ответ дан 22 November 2019 в 22:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: