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

j'ai un paquet externe que je veux installer dans mon virtualenv python à partir d'un fichier tar. Quelle est la meilleure façon d'installer le paquet?

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

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

est s'il y a une différence de les faire de ces deux façons.

57
demandé sur Dawars 2013-03-31 02:13:23

2 réponses

à la surface, les deux font la même chose: faire python setup.py install ou pip install <PACKAGE-NAME> installera votre paquet python pour vous, avec un minimum de bruit.

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

  • pip téléchargera automatiquement toutes les dépendances d'un paquet pour vous. En revanche, si vous utilisez setup.py , vous devez souvent rechercher et télécharger manuellement les dépendances, qui sont fastidieuses et peuvent devenir frustrantes.
  • pip conserve la trace de diverses métadonnées qui vous permettent facilement de désinstaller et de mettre à jour des 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 supprimer manuellement et maintenir un paquet à la main si vous voulez vous en débarrasser, ce qui pourrait être source d'erreurs.
  • Vous n'avez plus à télécharger manuellement vos fichiers. Si vous utilisez setup.py , vous devez visiter le site web de la bibliothèque, de figure où le télécharger, extraire le fichier, lancez setup.py ... En revanche, pip recherchera automatiquement le Python Package Index (PyPi) pour voir si le paquet y existe, et téléchargera, extraira et installera automatiquement le paquet pour vous. À quelques exceptions près, presque toutes les bibliothèques Python réellement utiles peuvent être trouvées sur PyPi.
  • pip vous laissera install easily wheels, qui est le nouveau standard de la distribution Python. Plus d'info à propos de roues .
  • pip offre des avantages supplémentaires qui s'intègrent bien avec l'utilisation de virtualenv , qui est un programme qui vous permet d'exécuter plusieurs projets qui nécessitent des bibliothèques conflictuelles et des versions Python sur votre ordinateur. Plus d'infos .
  • pip est livré par défaut avec Python à partir de Python 2.7.9 sur le Python 2.la série x, et que de Python 3.4.0 sur le Python 3.X series, ce qui le rend encore plus facile à utiliser.

donc en gros, utilisez pip. Il offre seulement 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 à jour, et que vous n'avez pas installé pip, vous pouvez trouver plus d'informations sur l'installation de pip aux liens suivants:

pip, par lui-même, ne nécessite pas vraiment un tutoriel. 90% du temps, la seule commande que vous avez vraiment besoin est pip install <PACKAGE-NAME> . Cela dit, si vous souhaitez en savoir plus sur ce que vous pouvez faire exactement avec pip, voir:

il est également généralement recommandé d'utiliser pip et virtualenv ensemble. Si vous êtes un débutant de Python, je pense personnellement que ce serait bien de commencer avec juste l'utilisation pip et installer des paquets globalement, mais finalement je pense que vous devriez passer à l'utilisation de virtualenv pendant que vous vous attaquez à des projets plus sérieux.

si vous souhaitez en savoir plus sur l'utilisation de pip et virtualenv ensemble, voir:

67
répondu Michael0x2a 2017-05-23 10:31:19

python setup.py install est l'analogique de make install: c'est un moyen limité de compiler et de copier des fichiers vers les répertoires de destination. Cela ne signifie pas que c'est la meilleure façon d'installer vraiment un logiciel sur votre système.

pip est un gestionnaire de paquets, qui peut installer, mettre à jour, lister et désinstaller des paquets, comme les gestionnaires de paquets familiers, y compris: 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 finissent installé.

en résumé: utiliser pip .

11
répondu Éric Araujo 2017-07-26 09:23:03