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?

1134voto

alko Punkte 45378

Verwenden Sie pip anstelle von easy_install.

Mit pip können Sie alle installierten Pakete und deren Versionen auflisten über:

pip freeze

Auf den meisten Linux-Systemen können Sie dies direkt an grep weiterleiten (oder auf Windows an findstr), um die Zeile für das spezielle Paket zu finden, an dem Sie interessiert sind.


Linux:

pip freeze | grep lxml

lxml==2.3

Windows:

pip freeze | findstr lxml

lxml==2.3


Für ein einzelnes Modul können Sie versuchen, auf das __version__-Attribut zuzugreifen. Es gibt jedoch Module, die dies nicht unterstützen:

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'

Schließlich, da die Befehle in Ihrer Frage mit sudo beginnen, scheint es, dass Sie in die globale Python-Umgebung installieren. Ich rate dringend dazu, sich mit Python virtual environment Managern zu beschäftigen, zum Beispiel virtualenvwrapper.

523voto

damienfrancois Punkte 45805

Sie können versuchen

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

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

Dies ist der von PEP 396 empfohlene Ansatz. Aber dieser PEP wurde nie angenommen und wurde verschoben. Tatsächlich scheint es immer mehr Unterstützung unter Python-Kernentwicklern zu geben, nicht ein __version__ Attribut einzuschließen, z.B. in _Entfernen von importlib_metadata.version._.

467voto

Jakub Kukul Punkte 8989

Python >= 3.8:

Wenn Sie Python >= 3.8 verwenden, können Sie ein Modul aus der integrierten Bibliothek dafür verwenden. Um die Version eines Pakets (in diesem Beispiel construct) zu überprüfen, führen Sie folgenden Befehl aus:

>>> from importlib.metadata import version
>>> version('construct')
'4.3.1'

Python < 3.8:

Verwenden Sie das mit der pkg_resources-Modul verteilt mit setuptools-Bibliothek. Beachten Sie, dass der String, den Sie der Methode get_distribution übergeben, dem PyPI-Eintrag entsprechen sollte.

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

Seitennotizen:

  1. Beachten Sie, dass der String, den Sie der Methode get_distribution übergeben, der Paketname wie im PyPI registriert sein sollte, nicht der Modulname, den Sie zu importieren versuchen. Leider sind diese nicht immer identisch (z.B. Sie führen pip install memcached aus, aber import memcache).

  2. Wenn Sie diese Lösung von der Befehlszeile aus anwenden möchten, können Sie etwas Ähnliches tun:

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

184voto

0x3bfc Punkte 2191

Verwenden Sie pip show, um die Version zu finden!

# Um die Paketversion zu erhalten, führen Sie den unten stehenden Befehl aus
pip show DEIN_PAKET_NAME | grep Version

Sie können pip show DEIN_PAKET_NAME verwenden - dies gibt Ihnen alle Details zum Paket. Dies funktioniert auch unter Windows.

grep Version wird in Linux verwendet, um die Version zu filtern und anzuzeigen.

124voto

susan097 Punkte 2870

Der bessere Weg, das zu tun, ist:


Für die Details eines bestimmten Pakets

pip show 

Es zeigt den Paketnamen, die Version, den Autor, den Speicherort etc. an.


$ pip show numpy

Name: numpy
Version: 1.13.3
Summary: NumPy: array processing for numbers, strings, records, and objects.
Home-page: http://www.numpy.org
Author: NumPy Developers
Author-email: numpy-discussion@python.org
License: BSD
Location: c:\users\prowinjvm\appdata\local\programs\python\python36\lib\site-packages
Requires:

Für weitere Details: >>> pip help


pip sollte aktualisiert werden, um dies zu tun.

pip install --upgrade pip

Auf Windows lautet der empfohlene Befehl:

python -m pip install --upgrade pip

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