LISEZ D'ABORD CECI https://packaging.python.org/en/latest/current.html
Recommandations concernant les outils d'installation
- Utiliser pip pour installer les paquets 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 wheel, dans le but > d'accélérer les installations ultérieures.
- Si vous cherchez à gérer des piles logicielles multiplateformes entièrement intégrées, envisagez buildout (principalement axé sur la communauté des développeurs web) ou Hashdist, ou conda (tous deux principalement axés sur la communauté scientifique).
Recommandations sur les outils d'emballage
- Utilisez setuptools pour définir des projets et créer des distributions de sources.
- Utilisez l'extension bdist_wheel setuptools disponible dans le projet wheel pour créer des roues. Ceci est particulièrement bénéfique, si votre projet contient des extensions binaires.
- Utilisez twine pour télécharger des distributions sur PyPI.
Cette réponse a vieilli, et en effet il existe un plan de sauvetage pour le monde de l'emballage python appelé
chemin de roues
Je qoute pythonwheels.com ici :
Que sont les roues ?
Les roues sont la nouvelle norme de distribution de 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 paquets d'extension en python pur et en C natif.
- Évite l'exécution de code arbitraire pour l'installation. (Evite 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 la continuité continue.
- Crée des fichiers .pyc dans le cadre de l'installation pour s'assurer qu'ils correspondent à l'interpréteur python utilisé.
- Des installations plus cohérentes entre les plateformes et les machines.
L'histoire complète de l'empaquetage correct de python (et des roues) est couverte à l'adresse suivante packaging.python.org
chemin de la conda
Pour le calcul scientifique (ceci est également recommandé sur packaging.python.org, voir ci-dessus), j'envisagerais d'utiliser Emballage CONDA qui peut être considéré comme un service tiers construit au-dessus de PyPI et des outils pip. Il fonctionne également très bien pour mettre en place votre propre version de binstar J'imagine donc qu'il peut faire l'affaire pour une gestion personnalisée et sophistiquée des paquets d'entreprise.
Conda peut être installé dans un dossier d'utilisateur (sans permissions de super utilisateur) et fonctionne comme par magie avec
installation de conda
et une puissante expansion de l'environnement virtuel.
façon œufs
Cette option était liée à python-distribute.org et est largement dépassée (tout comme le site). Je vais donc vous indiquer l'un des exemples de setup.py prêts à l'emploi mais compacts que j'aime bien :
- Un exemple/implémentation très pratique du mélange de scripts et de fichiers python simples dans setup.py est de donner aquí
- Encore mieux, celui de hyperopt
Cette citation est tirée du guide sur le état de setup.py et s'applique toujours :
- setup.py disparu !
- Les distutils sont partis !
- Distribué à l'extérieur !
- pip et virtualenv sont là pour rester !
- les œufs ... disparus !
J'ajoute un point supplémentaire (de ma part)
Je vous recommande de vous familiariser avec écosystème de l'emballage (du guide indiqué par gotgenes) avant de tenter un copier-coller insensé.
~~La plupart des exemples que l'on trouve sur Internet commencent par
from distutils.core import setup
mais cela ne permet pas, par exemple, de construire un œuf. python setup.py bdist_egg (ainsi que d'autres vieux ), qui étaient disponibles dans
from setuptools import setup
Et la raison en est qu'ils sont déprécié .
Maintenant, selon le guide
Avertissement
Veuillez utiliser le paquet Distribute plutôt que le paquet Setuptools. parce qu'il y a des problèmes dans ce paquet qui peuvent être et ne seront pas être corrigés.
Les setuptools dépréciés 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 eggs et que je n'ai pas encore été complètement convaincu par la commodité de distutils2. Il faut
pip install Distutils2
et d'installer
python -m distutils2.run install~~
PS
L'emballage n'a jamais été trivial (on l'apprend en essayant d'en développer un nouveau), donc je suppose que beaucoup de choses sont passées par la raison. J'espère juste que cette fois-ci sera est fait correctement.