web-dev-qa-db-fra.com

Différence entre 'python setup.py install' et 'pip install'

J'ai un paquet externe que je veux installer dans mon python virtualenv à partir d'un fichier tar. Quel est le meilleur moyen d'installer le paquet?

J'ai découvert 2 façons de le faire:

  1. Extrayez le fichier tar, puis exécutez python setup.py install à l'intérieur du répertoire extrait.
  2. pip install packagename.tar.gz de l'exemple n ° 7 dans https://pip.pypa.io/fr/stable/reference/pip_install/#examples

Est-ce qu'il y a une différence qui les fait de ces 2 manières.

77
user2125465

En apparence, les deux font la même chose: faire soit python setup.py install Ou pip install <PACKAGE-NAME> Installera votre paquet python pour vous, avec un minimum de complications.

Cependant, l'utilisation de pip offre certains avantages supplémentaires qui le rendent beaucoup plus agréable à utiliser.

  • pip téléchargera automatiquement toutes les dépendances d'un paquet. En revanche, si vous utilisez setup.py, Vous devez souvent rechercher et télécharger manuellement des dépendances, ce qui est fastidieux et peut devenir frustrant.
  • pip garde la trace de diverses métadonnées qui vous permettent de désinstaller et de mettre à jour facilement les paquets avec une seule commande: pip uninstall <PACKAGE-NAME> et pip install --upgrade <PACKAGE-NAME>. En revanche, si vous installez un paquet en utilisant setup.py, Vous devez le supprimer et le maintenir manuellement si vous voulez vous en débarrasser, ce qui pourrait être sujet à des erreurs.
  • Vous n'avez plus besoin de télécharger manuellement vos fichiers. Si vous utilisez setup.py, Vous devez visiter le site Web de la bibliothèque, déterminer où le télécharger, extraire le fichier, exécuter setup.py ... Par contre, pip recherchera automatiquement le Python Package Index (PyPi) pour voir si le paquet existe, et téléchargera, extraira et installera automatiquement le paquet pour vous. À quelques exceptions près, presque chaque bibliothèque réellement utile Python est disponible sur PyPi.
  • pip vous laissera installer facilement des roues, qui constituent le nouveau standard de la distribution Python. Plus d'infos sur les roues .
  • pip offre des avantages supplémentaires qui s’intègrent bien avec virtualenv, un programme qui vous permet d’exécuter plusieurs projets nécessitant des bibliothèques en conflit et des versions Python sur votre ordinateur. Plus d'infos .
  • pip est groupé par défaut avec Python à partir de Python 2.7.9 sur la série Python 2.x, et de Python 3.4.0 sur la série Python 3.x, facilitant ainsi son utilisation.

Donc, fondamentalement, utilisez pip. Il n'offre que des améliorations par rapport à l'utilisation de python setup.py install.


Si vous utilisez une ancienne version de Python, que vous ne pouvez pas mettre à niveau et que pip n'est pas installé, vous pouvez trouver plus d'informations sur l'installation de pip aux liens suivants:

pip, par lui-même, ne nécessite pas vraiment de tutoriel. Dans 90% des cas, la seule commande dont vous avez réellement besoin est pip install <PACKAGE-NAME>. Cela dit, si vous souhaitez en savoir plus sur les détails de ce que vous pouvez faire avec pip, voyez:

Il est également généralement recommandé d’utiliser pip et virtualenv ensemble. Si vous êtes un débutant en Python, je pense personnellement que commencer par utiliser simplement pip et installer des paquetages dans le monde entier, mais finalement, je pense que vous devriez passer à l'utilisation de virtualenv lorsque vous vous attaquez à des projets plus sérieux.

Si vous souhaitez en savoir plus sur l’utilisation conjointe de pip et de virtualenv, voir:

82
Michael0x2a

python setup.py install est l’analogue de make install: c’est un moyen limité de compiler et de copier des fichiers dans des répertoires de destination. Cela ne veut pas dire que c’est le meilleur moyen d’installer réellement des logiciels sur votre système.

pip est un gestionnaire de paquets qui peut installer, mettre à jour, répertorier et désinstaller des paquets, à l'instar des gestionnaires de paquets connus, notamment: dpkg, apt, yum, urpmi, ports etc. Sous le capot, il fonctionnera python setup.py install, mais avec des options spécifiques pour contrôler comment et où les choses sont installées.

En résumé: utilisez pip.

16
Éric Araujo