1103 Stimmen

Wie überprüfe ich die Versionen von Python-Modulen?

Ich habe die Python-Module construct und statlib mit setuptools installiert:

sudo apt-get install python-setuptools

sudo easy_install statlib
sudo easy_install construct

Wie kann ich ihre Versionen über die Befehlszeile überprüfen?

57voto

user224767 Punkte 949

In Python 3 mit Klammern um print herum:

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

37voto

Davit Tovmasyan Punkte 3278

In der Python 3.8-Version gibt es ein neues metadata Modul im importlib Paket, das das auch kann.

Hier ist ein Beispiel aus der Dokumentation:

>>> from importlib.metadata import version
>>> version('requests')
'2.22.0'

29voto

waterproof Punkte 4634

module.__version__ ist das erste, was du versuchen solltest, aber es funktioniert nicht immer.

Wenn du nicht in die Shell eindringen möchtest und pip 8 oder 9 verwendest, kannst du immer noch pip.get_installed_distributions() innerhalb von Python verwenden, um Versionen zu erhalten:

_Die Lösung funktioniert hier in pip 8 und 9, aber in pip 10 wurde die Funktion von pip.get_installed_distributions nach pip._internal.utils.misc.get_installed_distributions verschoben, um explizit darauf hinzuweisen, dass sie nicht für den externen Gebrauch vorgesehen ist. Es ist keine gute Idee, sich darauf zu verlassen, wenn du pip 10+ verwendest._

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']
] # -> schön gefilterte Liste von ['setuptools: 3.3', ...]

21voto

tashuhka Punkte 4768

Die vorherigen Antworten haben mein Problem nicht gelöst, aber dieser Code hat es getan:

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

17voto

jturi Punkte 1349

Verwenden Sie dir(), um herauszufinden, ob das Modul über ein__version__-Attribut verfügt.

>>> import selenium
>>> dir(selenium)
['__builtins__', '__doc__', '__file__', '__name__',
 '__package__', '__path__', '__version__']
>>> selenium.__version__
'3.141.0'
>>> selenium.__path__
['/venv/local/lib/python2.7/site-packages/selenium']

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X