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

Я только что установил модули python: construct и statlib с setuptools следующим образом:

 # Install setuptools to be able to download the following sudo apt-get install python-setuptools # Install statlib for lightweight statistical tools sudo easy_install statlib # Install construct for packing/unpacking binary data sudo easy_install construct 

Я хочу иметь возможность (программно) проверять их версии. Есть ли эквивалент python --version я могу запустить из командной строки?

Моя версия python – 2.7.3 .

9 Solutions collect form web for “Как проверить версию модулей python?”

Я предлагаю использовать pip вместо easy_install . С помощью pip вы можете перечислить все установленные пакеты и их версии с помощью

 pip freeze 

Для отдельного модуля вы можете попробовать атрибут __version__ , но есть модули без него:

 $ pip freeze | grep lxml lxml==2.3 $ python -c "import lxml; print lxml.__version__" Traceback (most recent call last): File "<string>", line 1, in <module> AttributeError: 'module' object has no attribute '__version__' 

Наконец, когда вы запускаете свою команду с префиксом sudo , я думаю, вы устанавливаете в глобальную среду python. Настоятельно рекомендуем обратиться к менеджерам виртуальной среды python, например virtualenvwrapper

Можешь попробовать

 >>> import statlib >>> print statlib.__version__ >>> import construct >>> print contruct.__version__ 

Я думаю, что это может помочь, но сначала установить пакет show , чтобы запустить pip show затем использовать show, чтобы найти версию!

 sudo pip install show # in order to get package version execute the below command sudo pip show YOUR_PACKAGE_NAME | grep Version 

Используйте модуль pkg_resources распространяемый с помощью библиотеки setuptools . Обратите внимание, что строка, которую вы передаете методу get_distribution должна соответствовать записи PyPI.

 >>> import pkg_resources >>> pkg_resources.get_distribution("construct").version '2.5.2' 

и если вы хотите запустить его из командной строки, вы можете сделать:

 python -c "import pkg_resources; print pkg_resources.get_distribution('construct').version" 

(Отказ от ответственности: это почти ответ на этот ответ , но для меня он более уместен, чем любой другой ответ на этот вопрос.)

В python3 с скобками вокруг печати

 >>> import celery >>> print(celery.__version__) 3.1.14 

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

 import sys for name, module in sorted(sys.modules.items()): if hasattr(module, '__version__'): print name, module.__version__ 

module.__version__ – это первое, что нужно попробовать, но это не всегда работает.

если вы хотите получить версии из Python (без pip.get_installed_distributions() ), попробуйте pip.get_installed_distributions() :

 import pip pip.get_installed_distributions() # -> [distribute 0.6.16 (...), ...] [ pkg.key + ': ' + pkg.version for pkg in pip.get_installed_distributions() if pkg.key in ['setuptools', 'statlib', 'construct'] ] # -> nicely filtered list of ['setuptools: 3.3', ...] 

Если вышеуказанные методы не работают, стоит попробовать следующее в python:

 import modulename modulename.version modulename.version_info 

См. Вернуть версию Porn Tornado?

Обратите внимание, что .version работала для меня на нескольких других, кроме торнадо.

Некоторые модули не имеют атрибута __version__ , поэтому самый простой способ – проверить в терминале: pip list

Interesting Posts
Python - лучший язык программирования в мире.