web-dev-qa-db-fra.com

Construisez une roue / Egg et toutes les dépendances pour un projet python

Afin de mettre en place le projet python au sein de notre société, je dois faire une distribution installable.

Cela devrait comprendre:

  • Un œuf ou whl pour mon projet
  • Un œuf ou whl pour chaque dépendance du projet
  • (éventuellement) produire un fichier requirements.txt répertoriant tous les composants installables pour cette version

Existe-t-il un plug-in facile (par exemple, une alternative à bdist_wheel) qui compilera non seulement une roue mais aussi les composants de ce projet?

Évidemment, je peux écrire ceci, mais j'espérais qu'il pourrait y avoir un raccourci qui crée le paquet + les dépendances en moins d'étapes.

Cela doit fonctionner sur Python 2.7 sur Windows + Linux.

37
Salim Fadhley

Vous devrez créer un setup.py fichier pour votre package. Assurez-vous que les derniers setuptools et pip sont installés. Exécutez ensuite ce qui suit:

python setup.py bdist_wheel

Cela créera un fichier de roue pour votre package. Cela suppose que vous n'avez pas d'en-têtes C/C++, de DLL, etc. Si vous le faites, vous aurez probablement beaucoup plus de travail à faire.

Pour obtenir les dépendances, vous souhaiterez créer un requirements.txt fichier et exécutez ce qui suit:

pip wheel -r requirements.txt

Si votre package n'est pas sur PyPI, vous devrez alors copier manuellement le fichier wheel de votre package dans le dossier wheel que cette commande crée. Pour plus d'informations, consultez l'excellent article suivant:

40
Mike Driscoll

Avec les derniers pip et wheel, vous pouvez simplement exécuter

pip wheel .

dans votre dossier de projet, même si votre application n'est pas sur PyPi. Toutes les roues seront stockées dans ./wheelhouse. Quand je l'ai essayé, cependant, il a manqué une de mes dépendances et j'ai dû le construire manuellement. Pas certain de pourquoi.

29
jtpereyda