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
python
pip
setuptools
PeterE
la source
la source
Réponses:
Essayez d'éviter d'appeler
setup.py
directement, cela ne dira pas correctement à pip que vous avez installé votre paquet.Avec
pip install -e
:Plus: docs
Lisez également des setuptools docs .
la source
Une autre différence:
pip install -e
utilise la rouepython setup.py develop
sans l'utiliser.
Avec
install
, vous pouvez obtenir le même comportement en utilisantpip install -e /path/to/package --no-use-wheel
Plus d'informations sur les roues: roues en python
la source
--no-use-wheel
en faveur de--no-binary :all:
Une autre différence qui peut favoriser
pip install -e
est que si votre projet a des dépendances dansinstall_requires
insetup.py
, alorspip install -e .
installe les dépendances avec pip, tandis quepython setup.py develop
peut installer aveceasy_install
, et peut causer des problèmes re: 'egg-info' comme mentionné ci-dessus. Lorsqu'il estinstall-requires
utilisédependency_links
avec des URL git personnalisées, avec des identifiants d'oeuf attachés, cela peut être particulièrement ennuyeux.la source
pip install -e .
, il crée essentiellement un lien symbolique dans le répertoire site-packages Python approprié pour pointer vers votre copie de travail. Lorsque des modifications de code sont apportées à cette copie de travail, elles sont instantanément reflétées dans la version "installée", vous n'avez donc pas besoin de réexécuter les commandes d'installation au fur et à mesure. Ceci est principalement utile pour développer dans un référentiel qui représente un package installable, mais peut également être pratique pour, par exemple, écrire une collection de modules avec uniquement des importations absolues, etc.Encore une autre différence: lorsque vous exécutez
python setup.py develop
pour une version qui est considérée comme une pré-version (peut-être parce que vous l'exécutez à partir d'un clone git sans avoir extrait de version), vous activerez l'installation des pré-versions de vos dépendances . D'autre part, avecpip install --editable
vous auriez à passer--pre
explicitement si vous voulez ces pré-versions.(Consultez le journal CI avec les pré-versions utilisées accidentellement et comparez-le à une version fixe ici .)
la source