webentwicklung-frage-antwort-db.com.de

Wie kann ich feststellen, ob Python-Setuptools installiert ist?

Ich schreibe ein schnelles Shell-Skript, um einigen Entwicklern die Ausführung von Fabric zu erleichtern. (Ich bin auch neu in Python.) Ein Teil der Installation von Fabric besteht darin, pip zu installieren, und ein Teil der Installation von pip besteht darin, setuptools zu installieren.

Gibt es eine einfache Möglichkeit, festzustellen, ob setuptools bereits installiert ist? Ich möchte es möglich machen, das Skript mehrmals auszuführen, und es wird alles übersprungen, was es bereits getan hat. Wenn Sie ez_setup.py zweimal hintereinander ausführen, wird beim zweiten Mal ein Fehler angezeigt.

Eine Idee, die ich hatte, war, nach den easy_install-Skripts im Ordner/Scripts zu suchen. Ich kann die Python-Wurzel mit sys.executable erraten und dann den Namen der ausführbaren Datei selbst austauschen. Aber ich suche etwas eleganteres (und vielleicht Cross-OS-freundlich). Irgendwelche Vorschläge?

12
Ryan Nelson

Das ist nicht so toll, aber es wird funktionieren.

Ein einfaches Python-Skript kann die Überprüfung durchführen

import sys
try:
    import setuptools
except ImportError:
    sys.exit(1)
else:
    sys.exit(0)

OR

try:
    import setuptools
except ImportError:
    print("Not installed.")
else:
    print("Installed.")

Dann überprüfen Sie einfach den Beendigungscode im aufrufenden Skript

10
grim

Versuchen Sie es mit diesem Befehl.

$ pip list

Es gibt die Versionen von pip und setuptools zurück. Ansonsten versuchen Sie es mit 

$ pip install pil

Wenn dies auch nicht funktioniert, versuchen Sie es mit 

$ which easy_install
18
bosari

Führen Sie einfach den folgenden Code in IDLE aus:

import easy_install

Wenn es nur zur nächsten Zeile geht, denke ich, dass es installiert ist ... Wenn es sagt:

Error: invalid syntax

Dann ist es wahrscheinlich nicht installiert. Ich weiß das, weil ich pip damit getestet habe. Außerdem überprüfe einfach import pip, ob pip vorinstalliert ist. :)

4
Doge Woof

Versuchen Sie dies, um zu testen, ob ein Modul installiert ist

>>> import sys
>>> 'setuptools' in sys.modules.keys()
False

sie können nach easy_install und setuptools suchen, indem Sie die folgenden Befehlszeilenbefehle ausführen:

which easy_install
#finds the path to easy_install if it exists

less path/to/easy_install
#where path/to/easy_install is the output from the above command
#this outputs your easy_install script which will mention the version of setuptools

Wenn das Paket easy_install/setuptools installiert ist, wird die Ausgabe des zweiten Befehls oben möglicherweise wie folgt lauten:

#EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==0.6c11','console_scripts','easy_install'
2
Brian Zelip

Es ist mit neuen Python-Versionen vorinstalliert. 

pip3 list

war genug zu erkennen, dass es für mich installiert war

1
ivandov

Daraufhin wird die Version Ihrer Setuptools angezeigt, sofern diese bereits installiert sind

$python -c "import sys; import setuptools; print(setuptools.version.__version__)"

0
Ritwika Gautam