Accueil » Python » Forums Python » Forum général Python » Changement d'un layout dev (tout dans src) à un vrai (lib, bin, etc)

 question Changement d'un layout dev (tout dans src) à un vrai (lib, bin, etc)

Document Actions
Réponses: 5   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

question Changement d'un layout dev (tout dans src) à un vrai (lib, bin, etc)

Posté par naparuba le 28/07/2010 15:21
Bonjour,

Je développe une application en Python(>=2.6) nommée Shinken. Elle est composée de plusieurs daemons et pour l'instant tout est laissé dans un répertoire src. Là dedans je mets toutes les classes et les "daemons" de lancement. J'aimerai passer à un véritable layout avec du bin (pour les daemons), un répertoire lib (pour toutes les classes qu'ils utilisent), un répertoire etc pour la configuration et enfin un répertoire modules (des modules chargeables par un des daemons).

J'avoue avoir un peu de mal avec le setup.py et surtout comment faire en sorte que l'utilisateur puisse mettre ces morceaux où bon lui semble et que le sys.path s'en sorte toujours. Quelqu'un aurait-il un exemple de setup.py où l'on puisse gérer cela et comment fait-on après pour retrouver ses petits avec sys.path par la suite?

Pour les curieux qui veulent regarder le code c'est par là : http://shinken.git.sourceforge.net/git/gitweb.cgi?p=shinken/shinken;a=tree :)

Merci beaucoup,


Jean

 • Re: Changement d'un layout dev (tout dans src) à un vrai (lib, bin, etc)

Posté par benoit.intrw le 29/07/2010 09:02
Bonjour,

Une idée, regarder l'organisation des packages et les setup.py de Atomisator développé par Tarek Ziadé et qui je crois est l'application exemple d'un de ses livres.

http://bitbucket.org/tarek/atomisator/src/tip/packages/

Benoît

P.S: Au passage j'ai apprécié tes articles dans le dernier HS Linux Mag

thumb up Re: Changement d'un layout dev (tout dans src) à un vrai (lib, bin, etc)

Posté par naparuba le 29/07/2010 11:36
Merci je vais regarder comment il s'y prends. J'ai réussi à changer le layout en mettant un vrai module shinken au lieu de src et en sortant ce qui ne devait pas être dedans le tout en conservant le fait qu'un admin préssé peut lancer le tout sans setup.py (ça fait peur juste pour tester :) ).

Il me reste le setup.py maintenant :p

Et merci beaucoup pour l'article, ça fait toujours plaisir de savoir que ce que l'on a écrit est apprécié :)


Jean

 • Re: Changement d'un layout dev (tout dans src) à un vrai (lib, bin, etc)

Posté par benoit.intrw le 29/07/2010 14:39
Il y a des choses intéressante aussi par là en relation avec le packaging :
http://guide.python-distribute.org/creation.html

J'ai jeté un petit coup d'œil aux sources, il semble que tu ne suis pas la PEP8 (http://www.python.org/dev/peps/pep-0008/) au moins en terme de docstrings.

C'est peut être volontaire suivant l'outil de documentation du code que tu utilise.
Sinon des outils comme pep8 et pylint sont très utile:
- http://pypi.python.org/pypi/pep8
- http://pypi.python.org/pypi/pylint

Benoît

 • Re: Changement d'un layout dev (tout dans src) à un vrai (lib, bin, etc)

Posté par naparuba le 29/07/2010 15:16
J'ai commencé à regardé la manière de faire de Tarek et ça m'aide déjà beaucoup :)
Je vais lire ça merci.

J'utilise pylint en effet, et je le trouve très pratique d'ailleurs :)

Concernant les docstrings non car je n'utilise pas de documentation automatique de code (je n'ai jamais réussi à trouver une info intéressante dans celle que j'ai vu pour l'instant, je préfère y aller en direct) et surtout je trouve les docstrings très andicapantes pour la lecture du code:
si elle étaient avant le prototype je les utiliserais sans soucis, mais se mettre entre le prototype et le code je trouve ça d'une horreur à suivre. C'est comme commenter un livre par le milieu, puis revenir au prologue et enfin finir sur la conclusion.

Mais je vais sûrement en sur les classes et les modules déjà, car là ça ne gâche pas la lecture :D


Jean

 • Re: Changement d'un layout dev (tout dans src) à un vrai (lib, bin, etc)

Posté par naparuba le 30/07/2010 13:01
Bon j'ai bien avancé, j'arrive à avoir un setup.py qui commence à ressembler à quelque chose. Le dernier point où je bloque se situe au niveau des fichiers de configurations que je fournis avec l'application.
J'aimerai bien qu'ils n'appartiennent pas à root à la fin du setup.py, mais à un user shinken s'il existe. Et là je n'arrive pas à trouver comment faire de manière propre (et non aller faire du chown à gogo :) ).

Si quelqu'un à une idée ou un exemple, je prends :)

Merci,


Jean