С помощью pip можно выяснить, какая версия пакета установлена в данный момент?
Я знаю о, pip install XYZ --upgrade
но мне интересно, если есть что-нибудь подобное pip info XYZ
. Если нет, то какой будет лучший способ сказать, какую версию я сейчас использую.
show
в pip есть предложение для команды: github.com/pypa/pip/issues/33Ответы:
Начиная с пипа 1.3 , есть
pip show
команда.В более старых версиях
pip freeze
иgrep
должны хорошо выполнять свою работу.источник
save
имя.pip show pip
чтобы получить информацию о версии pip, а неpip --version
как я ожидал.pip freeze
имеет преимущество в том, что корректно показывает редактируемые версии оформления VCS, аpip show
не показывает .Я только что отправил запрос на извлечение в пипсах с улучшением, которое Уго Таварес сказал:
(как пример)
источник
Пип 1.3 теперь также имеет команду list :
источник
pip list
являются общими и__version__
не являются. Я тоже виделversion()
иget_version()
для импортного.а с --outdated в качестве дополнительного аргумента вы получите текущую и последнюю версии используемых вами пакетов:
Итак, в сочетании с ответом AdamKG:
Также проверьте pip-инструменты : https://github.com/nvie/pip-tools
источник
Вы также можете установить
yolk
и запустить,yolk -l
что также дает хороший вывод. Вот то, что я получаю за мой маленький virtualenv:источник
Вы можете использовать команду grep, чтобы узнать.
Пример:
покажет только версии.
источник
Самый простой способ это:
источник
__version__
в их исходном коде. Многие пакеты не делают.import
и выводомpip freeze
.Существует также инструмент под названием,
pip-check
который дает вам быстрый обзор всех установленных пакетов и их статус обновления:Сам не использовал его; просто наткнулся на него и этот ТАК вопрос в быстрой последовательности, и так как он не был упомянут ...
источник
В Windows вы можете выполнить команду, такую как:
Вывод:
источник
Функция python, возвращающая только версию пакета в машиночитаемом формате:
До Python 3.8:
Эквивалент bash (здесь также вызывается из python) будет гораздо более сложным (но более надежным - см. Предостережение ниже):
Пример использования:
Обратите внимание, что в обоих случаях
pkg_name
параметр должен содержать имя пакета в формате, который возвращается,pip freeze
а не используется в течениеimport
, например,scikit-learn
нетsklearn
илиFlask-Caching
нетflask_caching
.Обратите внимание, что хотя вызов
pip freeze
в bash-версии может показаться неэффективным, только этот метод оказывается достаточно надежным, чтобы упаковать особенности и несоответствия именования (например, подчеркивание против черточек, маленькие или большие заглавные буквы, а также сокращения, такие какsklearn
противscikit-learn
).Внимание: в сложных средах оба варианта могут возвращать неожиданные номера версий, несовместимые с тем, что вы можете получить во время
import
.Одна такая проблема возникает, когда есть другие версии пакета, скрытые в пользовательской
site-packages
подпапке. В качестве иллюстрации опасностей использованияversion()
вот ситуации, с которой я столкнулся:Другая проблема заключается в том, что в одной и той же среде есть несколько установленных conda пакетов. Если они делят зависимости с вашими установленными pip пакетами, и версии этих зависимостей различаются, вы можете получить понижения ваших установленных pip зависимостей.
Чтобы проиллюстрировать это, последняя версия,
numpy
доступная в PyPI 04-01-2020, была 1.18.0, в то время как на канале Anacondaconda-forge
была включена только версия 1.17.3numpy
. Поэтому, когда вы устанавливаетеbasemap
пакет с помощью conda (как второй), ранее установленный вами pip-пакетnumpy
будет понижен с conda до 1.17.3, а версия 1.18.0 станет недоступной для этойimport
функции. В этом случаеversion()
будет правильно, иpip freeze
/conda list
неправильно:источник
importlib.metadata.version('NameOfProject')
? docs.python.org/3/library/...from importlib_metadata import version; version('Flask-Caching')
python -c "import pkg_resources; print(pkg_resources.get_distribution('lightgbm').version)"
?version()
все еще возвращается самая ранняя (самая старая) версия (2.2.3). Вы можете повторить этот результат, установив обе версии с--user
коммутатором, но сохранивlightgbm-2.2.3.dist-info
папку вручную , чтобы они обе были вместе, как указано выше (pip обычно удалял бы его - пока не сделает).Пип-шоу работает в Python 3.7:
источник
Для этого используйте код Python:
С помощью
importlib.metadata.version
Python ≥3.8
Python ≤3.7
(используя
importlib_metadata.version
)С помощью
pkg_resources.Distribution
Зачислено на комментарии Sinoroc и Mirekphd .
источник
Для Windows вы можете
Откройте cmd и введите Python, нажмите Enter.
введите импорт и нажмите ввод.
введите ._version__ и нажмите ввод.
Как вы можете видеть на скриншоте здесь, я использую этот метод для проверки версии последовательного модуля.
источник
В вопросе не указано, какой пользователь ОС использует (Windows / Linux / Mac)
Так как есть пара ответов, которые будут работать безупречно на Mac и Linux.
Команда ниже может быть использована в случае, если пользователь пытается найти версию пакета Python в Windows.
В PowerShell используйте следующую команду:
pip list | findstr <PackageName>
Пример:-
pip list | findstr requests
Вывод :
requests 2.18.4
источник