web-dev-qa-db-fra.com

Python setup.py develop vs install

Deux options dans setup.py develop et install me déroutent. Selon ce site , utiliser develop crée un lien spécial vers le répertoire site-packages.

Des personnes m'ont suggéré d'utiliser python setup.py install pour une nouvelle installation et python setup.py develop après toute modification apportée au fichier d'installation.

Quelqu'un peut-il nous éclairer sur l'utilisation de ces commandes?

284
Netro

python setup.py install est utilisé pour installer (généralement des tiers) des packages que vous n'allez pas développer/modifier/déboguer vous-même.

Pour vos propres tâches, vous voulez d’abord installer votre paquet, puis pouvoir modifier fréquemment le code sans avoir à réinstaller le paquet à chaque fois - et c’est exactement ce que fait python setup.py develop : il installe le package (généralement un dossier source) de manière à vous permettre de modifier facilement votre code après son installation dans l'environnement (virtuel) et de faire en sorte que les modifications prennent effet immédiatement.

Notez qu’il est vivement recommandé d’utiliser pip install . (install) et pip install -e . (installation du développeur) pour installer les packages, car appeler setup.py directement fera de mauvaises choses pour de nombreuses dépendances, telles que versions préliminaires et incompatibles du paquet, ou rendre le paquet difficile à désinstaller avec pip.

393
Erik Allik

De la documentation . La develop n'installera pas le package, mais créera un .Egg-link dans le répertoire de déploiement dans le répertoire de code source du projet.

Donc, c'est comme installer mais au lieu de copier sur le site-packages, cela ajoute un lien symbolique (le .Egg-link agit comme un lien symbolique multiplateforme).

De cette façon, vous pouvez éditer le code source et voir les modifications directement sans avoir à réinstaller chaque fois que vous apportez une petite modification. Ceci est utile lorsque vous êtes le développeur de ce projet d'où le nom develop. Si vous installez simplement le paquet de quelqu'un d'autre, vous devriez utiliser install

100
ecerulm

Une autre chose que les gens peuvent trouver utile en utilisant la méthode develop est l’option --user à installer sans Sudo. Ex:

python setup.py develop --user

au lieu de

Sudo python setup.py develop
15
Taylor