web-dev-qa-db-fra.com

Comment savoir si Python setuptools est installé?

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?

12
Ryan Nelson

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

10
grim

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
18
bosari

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é :)

4
Doge Woof

Pour tester si un module est installé, essayez ceci

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

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'
2
Brian Zelip

Il est préinstallé avec les nouvelles versions de Python. 

pip3 list

était suffisant pour identifier il a été installé pour moi

1
ivandov