web-dev-qa-db-fra.com

empêcher setup.py de s'installer en tant qu'œuf

Comment puis-je arrêter setup.py de l'installation d'un paquet comme un œuf? Ou encore mieux, comment puis-je easy_install depuis l'installation d'un package en tant que Egg?

Sudo python setup.py install

La raison étant que PyDev est plutôt pointilleux sur les packages au format Egg ... Le package qui m'intéresse en ce moment est boto.

Mise à jour: J'ai trouvé la manière brute force de le faire:

Sudo easy_install -m boto
cd path/to/boto-xyz.Egg
Sudo mv boto ..
Sudo rm -rf boto-xyz.Egg
57
jldupont

Je sens que je manque quelque chose de subtil ou d'important (rencontrer cette page des années après que la question a été posée et ne pas trouver de réponse satisfaisante), mais ce qui suit me convient:

python setup.py install --single-version-externally-managed --root=/

Compressé *.Egg les fichiers sont une invention de setuptools (je ne suis pas un grand fan d'eux bien que je comprenne pourquoi ils ont été créés) et parce que le setup.py le script utilise (et peut nécessiter) setuptools, le paquet finit par être installé en tant que _ *.Egg fichier.

Les options de ligne de commande ci-dessus sont similaires à celles utilisées par pip (le Python) qui indique une autre façon d'empêcher un package d'être installé en tant que _ compressé *.Egg fichier: utilisez simplement pip! Si vous avez un répertoire contenant un setup.py script, vous pouvez exécuter la commande suivante dans ce répertoire pour installer le package à l'aide de pip:

pip install .

Il s'agit d'une amélioration par rapport au setup.py commande ci-dessus car elle suit les métadonnées supplémentaires (par exemple, le suivi des fichiers installés permet une suppression plus fiable).

59
xolox

Des années plus tard, même problème, insatisfait de la réponse acceptée. Trouvé cela dans les groupes Google:

pushd /path/to/my/package/ 
python setup.py sdist 
popd 
pip install /path/to/my/package/dist/package-1.0.tar.gz

Explication: python setup.py sdist crée un distribution source qui naturellement n'est pas un * .Egg! L'archive résultante (.tar.gz sous unix, .Zip sous windows) peut être installée comme n'importe quel module distant avec pip. Il ne nécessite même pas de paramètres supplémentaires! Il en résulte le module entièrement navigable souhaité.

15
freeo