LISEZ CECI EN PREMIER https://packaging.python.org/en/latest/current.html
Recommandations d'outils d'installation
- Utilisez pip pour installer les packages Python à partir de PyPI.
- Utilisez virtualenv ou pyvenv pour isoler les dépendances spécifiques à une application d'une installation Python partagée.
- Utilisez pip wheel pour créer un cache des distributions de roues, dans le but> d'accélérer les installations ultérieures.
- Si vous recherchez la gestion de piles de logiciels multiplateformes entièrement intégrées, envisagez la construction (principalement axée sur la communauté de développement Web) ou Hashdist, ou conda (tous deux principalement axés sur la communauté scientifique).
Recommandations d'outils d'emballage
- Utilisez setuptools pour définir des projets et créer des distributions source.
- Utilisez l'extension bdist_wheel setuptools disponible dans le projet de roue pour créer des roues. Ceci est particulièrement avantageux si votre projet contient des extensions binaires.
- Utilisez de la ficelle pour télécharger les distributions vers PyPI.
Cette réponse a vieilli, et il existe en effet un plan de sauvetage pour le monde de l'emballage python appelé
façon roues
Je qoute pythonwheels.com ici:
Que sont les roues?
Les roues sont le nouveau standard de la distribution python et sont destinées à remplacer les œufs. Le support est offert dans pip> = 1.4 et setuptools> = 0.8.
Avantages des roues
- Installation plus rapide pour les packages d'extension Python pur et C natif
- Évite l'exécution de code arbitraire pour l'installation. (Évite setup.py)
- L'installation d'une extension C ne nécessite pas de compilateur sous Windows ou OS X.
- Permet une meilleure mise en cache pour les tests et l'intégration continue.
- Crée des fichiers .pyc dans le cadre de l'installation pour s'assurer qu'ils correspondent à l'interpréteur python utilisé.
- Installations plus cohérentes sur les plates-formes et les machines.
L'histoire complète de l'empaquetage correct de python (et des roues) est couverte sur packaging.python.org
chemin conda
Pour le calcul scientifique (ceci est également recommandé sur packaging.python.org, voir ci-dessus), j'envisagerais d' utiliser l' empaquetage CONDA qui peut être vu comme un service tiers construit au-dessus des outils PyPI et pip. Cela fonctionne également très bien pour configurer votre propre version de binstar, donc j'imagine qu'il peut faire l'affaire pour une gestion sophistiquée de paquets d'entreprise personnalisés.
Conda peut être installé dans un dossier utilisateur (aucune autorisation de super utilisateur) et fonctionne comme par magie avec
installation de conda
et une puissante extension d'environnement virtuel.
manière d'oeufs
Cette option était liée à python-distribute.org et est plus obsolète (ainsi que le site), alors laissez-moi vous indiquer l'un des exemples setup.py prêts à l'emploi mais compacts que j'aime:
- Un exemple / implémentation très pratique de mélange de scripts et de fichiers python uniques dans setup.py est donné ici
- Encore meilleur de hyperopt
Cette citation est tirée du guide sur l' état de setup.py et s'applique toujours:
- setup.py est parti!
- distutils parti!
- distribuer parti!
- pip et virtualenv ici pour rester!
- oeufs ... partis!
J'ajoute un point de plus (de moi)
Je recommanderais d'avoir une certaine compréhension de l' écosystème de l' emballage (à partir du guide indiqué par gotgenes) avant de tenter un copier-coller sans réfléchir.
La plupart des exemples sur Internet commencent par
from distutils.core import setup
mais cela, par exemple, ne prend pas en charge la construction d'un egg python setup.py bdist_egg (ainsi que d'autres anciennes fonctionnalités), qui étaient disponibles dans
from setuptools import setup
Et la raison en est qu'ils sont obsolètes .
Maintenant selon le guide
Attention
Veuillez utiliser le package Distribute plutôt que le package Setuptools car il y a des problèmes dans ce package qui peuvent et ne seront pas résolus.
Les outils setuptools obsolètes doivent être remplacés par distutils2 , qui "fera partie de la bibliothèque standard de Python 3.3". Je dois dire que j'ai aimé setuptools et les œufs et que je n'ai pas encore été complètement convaincu par la commodité de distutils2. Cela requiert
pip install Distutils2
et installer
python -m distutils2.run install
PS
L'emballage n'a jamais été anodin (on apprend cela en essayant d'en développer un nouveau), donc je suppose que beaucoup de choses se sont passées pour une raison. J'espère juste que cette fois, ce sera fait correctement.