Hogyan lehet ellenőrizni a python modulok verzióját?

Most telepítettem a python modulokat: és statlib a setuptools segítségével, így: construct és statlib:

# 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

Szeretném, ha (programozottan) ellenőrizni tudnám a verziójukat. Van a python --version-nek egy megfelelője, amit a parancssorból futtathatok?

Az én python verzióm a 2.7.3.

Megoldás

Javaslom a pip használatát az easy_install helyett. A pip segítségével az összes telepített csomagot és azok verzióit a következővel listázhatja ki

pip freeze

A legtöbb linuxos rendszerben ezt a grep-be (vagy Windowson a findstr-be) vezetheted, hogy megtaláld az adott csomag sorát, ami érdekel:

Linux:
$ pip freeze | grep lxml
lxml==2.3

Windows:
c:\> pip freeze | findstr lxml
lxml==2.3

Az egyes modulok esetében megpróbálhatod a __version__ attribútumot, azonban vannak olyan modulok, amelyeknél ez nincs meg:

$ python -c "import requests; print(requests.__version__)"
2.14.2
$ python -c "import lxml; print(lxml.__version__)"
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: 'module' object has no attribute '__version__'

Végül, mivel a kérdésedben szereplő parancsok sudo előtaggal vannak ellátva, úgy tűnik, hogy a globális python környezetbe telepítesz. Erősen tanácsos megnézni a python virtuális környezet kezelőket, például a virtualenvwrapper

Kommentárok (7)

Megpróbálhatja

>>> import statlib
>>> print statlib.__version__

>>> import construct
>>> print contruct.__version__
Kommentárok (8)

Azt hiszem, ez segíthet, de először telepítse a show csomagot a pip show futtatásához, majd használja a show-t a verzió megtalálásához!

sudo pip install show
# in order to get package version execute the below command
sudo pip show YOUR_PACKAGE_NAME | grep Version
Kommentárok (6)