J'écris un script Shell rapide pour faciliter l’utilisation de Fabric par certains de nos développeurs. (Je connais aussi Python.) Une partie de l'installation de Fabric consiste à installer pip, et une partie de l'installation de pip consiste à installer setuptools.
Existe-t-il un moyen simple de détecter si setuptools est déjà installé? J'aimerais pouvoir exécuter le script plusieurs fois, et il ignore tout ce qu'il a déjà fait. Dans l'état actuel des choses, si vous exécutez ez_setup.py deux fois de suite, vous obtiendrez un échec une deuxième fois.
Une de mes idées était de rechercher les scripts easy_install dans le dossier/Scripts. Je peux deviner la racine Python en utilisant sys.executable, puis permuter le nom de l'exécutable lui-même. Mais je cherche quelque chose d'un peu plus élégant (et peut-être compatible avec les systèmes d'exploitation). Aucune suggestion?
Ce n'est pas génial mais ça va marcher.
Un simple script python peut faire la vérification
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.")
Ensuite, il suffit de vérifier que c'est le code de sortie dans le script d'appel
Essayez avec cette commande.
$ pip list
Elle retourne les versions de pip
et setuptools
. Sinon essayez avec
$ pip install pil
Si cela ne fonctionne pas non plus, essayez avec
$ which easy_install
Il suffit d’exécuter le code suivant dans IDLE:
import easy_install
Si cela passe juste à la ligne suivante, je pense que c'est installé . S'il dit:
Error: invalid syntax
Ensuite, il n’est probablement pas installé . Je le sais car j’ai testé pip avec cela . Vérifiez également import pip
pour voir si pip est préinstallé :)
Pour tester si un module est installé, essayez ceci
>>> import sys
>>> 'setuptools' in sys.modules.keys()
False
vous pouvez rechercher easy_install et setuptools en exécutant les commandes de ligne de commande suivantes:
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
Si le paquet easy_install/setuptools est installé, votre sortie de la deuxième commande ci-dessus se présentera probablement comme ceci:
#EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==0.6c11','console_scripts','easy_install'
Il est préinstallé avec les nouvelles versions de Python.
pip3 list
était suffisant pour identifier il a été installé pour moi