web-dev-qa-db-fra.com

"pip install --editable ./" vs "python setup.py develop"

Y a-t-il une différence significative entre

pip install -e /path/to/mypackage

et la variante setuptools?

python /path/to/mypackage/setup.py develop
137
PeterE

Essayez d'éviter d'appeler directement setup.py, cela ne dira pas correctement à pip que vous avez installé votre paquet.

Avec pip install -e:

Pour les projets locaux, le répertoire "SomeProject.Egg-info" est créé par rapport au chemin du projet. C’est un avantage par rapport à la simple utilisation de setup.py develop, qui crée "l’information sur l’œuf" directement par rapport au répertoire de travail en cours.

Plus: docs

Lisez également le setuptools ' docs .

100
sobolevn

Une autre différence: pip install -e utilise la roue tandis que python setup.py develop
ne l'utilise pas.

Avec install, vous pouvez obtenir le même comportement en utilisant
pip install -e /path/to/package --no-use-wheel

Plus d'infos sur les roues: roues en python

67
user2488286

Une autre différence qui peut favoriser pip install -e est que si votre projet a des dépendances dans install_requires dans setup.py, alors pip install -e . installe des dépendances avec pip, tandis que python setup.py develop peut être installé avec easy_install, et peut causer des problèmes concernant: 'Info-oeuf' comme mentionné ci-dessus. Lorsque install-requires utilise dependency_links avec des URL git personnalisées, ainsi que des identificateurs d'oeufs attachés, cela peut être particulièrement gênant.

28
ely