154 votes

Différence entre "python setup.py install" 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. 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/en/stable/reference/pip_install/#examples

Est-ce qu'il y a une différence entre ces deux façons de faire ?

155voto

Michael0x2a Points 9116

En apparence, les deux font la même chose : faire soit python setup.py install o pip install <PACKAGE-NAME> installera votre paquetage python pour vous, avec un minimum d'efforts.

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 En effet, vous devez souvent rechercher et télécharger manuellement les dépendances, ce qui est fastidieux et peut devenir frustrant.
  • pip conserve la trace de diverses métadonnées qui vous permettent de désinstaller et de mettre à jour facilement les paquets à l'aide d'une seule commande : pip uninstall <PACKAGE-NAME> y pip install --upgrade <PACKAGE-NAME> . En revanche, si vous installez un paquet en utilisant setup.py Si vous voulez vous débarrasser d'un paquet, vous devez le supprimer et le maintenir manuellement, ce qui peut être source d'erreurs.
  • Vous ne devez plus télécharger manuellement vos fichiers. Si vous utilisez setup.py vous devez vous rendre sur le site web de la bibliothèque, trouver l'endroit où le télécharger, extraire le fichier, exécuter l'application setup.py ... En revanche, pip recherche automatiquement dans le Index des paquets Python (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 véritablement utiles peuvent être trouvées sur PyPi.
  • pip vous permettra facile à installer qui est le nouveau standard de distribution de Python. Plus d'informations sur les roues .
  • pip offre des avantages supplémentaires qui s'intègrent bien à l'utilisation de virtualenv Il s'agit d'un programme qui vous permet d'exécuter plusieurs projets nécessitant des bibliothèques et des versions de Python contradictoires sur votre ordinateur. Plus d'informations .
  • pip est fourni par défaut avec Python à partir de Python 2.7.9 sur la série Python 2.x, et à partir de Python 3.4.0 sur la série Python 3.x, ce qui rend son utilisation encore plus facile.

Donc, en gros, 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 effectuer de mise à jour et que pip n'est pas installé, vous trouverez plus d'informations sur l'installation de pip sur les liens suivants :

pip, en soi, ne nécessite pas vraiment de tutoriel. 90% du temps, la seule commande dont vous avez vraiment besoin est pip install <PACKAGE-NAME> . Cela dit, si vous souhaitez en savoir plus sur les détails de ce que vous pouvez faire exactement avec pip, consultez le site :

Il est aussi généralement recommandé d'utiliser pip et virtualenv ensemble. Si vous êtes un débutant en Python, je pense personnellement qu'il est bon de commencer par utiliser pip et d'installer les paquets globalement, mais à terme, 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, consultez la rubrique :

25voto

Éric Araujo Points 4212

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 signifie pas que c'est le meilleur moyen d'installer réellement un logiciel sur votre système.

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

6voto

themefield Points 393

La question porte sur la méthode préférée pour installer un tarball local contenant un paquet python, PAS sur l'avantage de télécharger un paquet vers un service d'indexation comme PyPi.

Pour autant que je sache, certains distributeurs de logiciels ne téléchargent pas leurs paquets sur PyPi, et demandent aux développeurs de les télécharger depuis leur site web et de les installer.

python setup.py install

Cela peut fonctionner mais n'est pas recommandé. Il n'est pas nécessaire de déballer le fichier tarball et de l'ouvrir pour exécuter le fichier setup.py.

pip install ../path/to/packagename.tar.gz

C'est la manière conçue et préférée. Concise et alignée sur les paquets de style PyPi.

Plus d'informations sur pip install peuvent être trouvés ici : https://pip.readthedocs.io/en/stable/reference/pip_install/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X