Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Packager projet django sous forme de .deb pour deploiement facile.

+3 votes

Tout est dans le titre, seront les bienvenus vos astuces et suggestions sur comment puis je passer d'un projet django a un paquet .deb installable via apt. Tout ceci afin de simplifier le deploiement en production.

demandé 5-Jul-2015 par Nsukami_ (1,976 points)

Comment déploies tu tes applications aujourd'hui ?

Pourquoi pas un package python classique, uploadé sur un server pypi privé ?

Ça t’évite le packaging spécifique a un OS.

@foxmask pr l'instant je deploie a l'aide d'un magnifique fabfile :) je me plains pas, j'y arrive. Par contre, j'ai actuellement en face de moi des clients dont l'admin sys est du genre chiche.

@jc j'avoue que je ne me suis pas vraiment posé la question, en face, ils veulent pouvoir installer, mettre a jour et supprimer via apt. Faut peut etre que je leur demande pourquoi tres exactement.

Ce lien est passé sur /r/sametmax, leur outil make-deb est peut être ce que tu cherches.

@jc merci pr le tuyau, le meme lien est passé sur HN :) j'etais justement entrain de le parcourir.

3 Réponses

+3 votes

C'est bien trop long pour pondre ça en une réponse,

Je te renvois donc vers quelques tutos bien détaillés traitant de ta questoin par là, et un autre de ce côté

Lectures/plus d'infos : lien1, lien2, lien3, lien4

répondu 5-Jul-2015 par boblinux (3,094 points)

En effet, trop long. Disons que les ressources sur le sujet sont tellement nombreuses, malheureusement, elles sont souvent tres differentes, pas assez claires, et en français, (quasi?) inexistantes. Merci, me reste plus qu'a lire tout ça et eventuellement pondre une reponse plus ou moins concise.

Ce serait une bonne idée de pondre un outil qui automatise le processus ^^

Le déploiement en Python, c'est toujours la misère.

J'comprends pas comment un langage aussi complet merde autant sur ce point?

La distribution d'une appli c'est quand même LE truc qui servira à tous les programmeurs une fois leur petite appli peaufinée ><'

@DoubleNain @boblinux Misere? Merde? Je ne dirai pas ça :) avec fabric on arrive a faire des choses bien je pense.

@Nsukami_

Cool, tu penseras à nous faire un petit tuto sur le SubReddit de S&M/Github IndexErrorCoders pour nous montrer quand tu te la joues? =D

+5 votes

Il y a apparemment un outil pour build un packet debian a partir d'un projet python configuré pour etre build avec setuptools : https://github.com/astraw/stdeb (non testé)

Donc la première étape serait de packager ton app django avec setuptools : https://docs.djangoproject.com/en/1.8/intro/reusable-apps/
(il faut bien faire gaffe a inclure toutes le ressources (templates/css/js/...) dans le fichier MANIFEST.in, sinon tous les fichiers non python seront exclus du package final)

Ensuite passage a la moulinette stdeb et on croise les doigts :)

EDIT: fixé le lien pour stdeb

répondu 6-Jul-2015 par jc (2,674 points)
edité 6-Jul-2015 par jc

+1 l'idée de la Roulette russe? =D

C'est pas tant la roulette russe : packager une app django pour que ca soit installable via pip, ca se fait.
Si le packaging setuptools est configuré correctement, on se retrouve déjà avec un package qui fonctionnera dans tous les cas avec pip.
Ca amène le support du versioning de l'app et de ses dépendances, ca peut etre posé sur un serveur privé pypi (ou pas) : ca répond a une partie du probleme.

Apres si stdeb fonctionne sans accroc : bonus, et ca répond a la question :)

+1 vote

Il y a aussi cet outil : https://github.com/spotify/dh-virtualenv . Mais je sais pas ce que ça vaut.

répondu 10-Jul-2015 par Sam (4,974 points)
edité 10-Jul-2015 par jc
...