915 votes

Quelle est la meilleure structure de projet pour une application Python?

Imaginez que vous voulez développer un non-trivial de l'utilisateur final de bureau (non web) application en Python. Quelle est la meilleure façon de structurer le projet du dossier de la hiérarchie?

Les caractéristiques souhaitables, sont la facilité d'entretien, l'IDE de la convivialité, de l'aptitude à la source de contrôle de la ramification/de fusion, et de générer facilement des packages d'installation.

En particulier:

  1. Où mettez-vous la source?
  2. Où avez-vous mis du démarrage de l'application les scripts?
  3. Où mettez-vous le projet IDE trucs?
  4. Où avez-vous mis de l'unité/des tests d'acceptation?
  5. Où mettez-vous les non-Python données telles que les fichiers de configuration?
  6. Où voulez-vous mettre des sources Python, tels que C++ pour pyd/binaires des modules d'extension?

490voto

S.Lott Points 207588

N'a pas trop d'importance. Faites ce qui vous rend heureux fonctionnera. Il n'y a pas beaucoup de règles stupides parce que Python projets peuvent être simples.

  • /scripts ou /bin pour ce genre d'interface de ligne de commande des trucs
  • /tests pour vos tests
  • /lib pour votre C-les bibliothèques de langue
  • /doc pour la plupart de la documentation
  • /apidoc pour les Epydoc générés par les docs de l'API.

Et le répertoire de niveau supérieur peut contenir les fichiers README, Config et autres joyeusetés.

Le choix difficile est de savoir si ou de ne pas utiliser d' /src arbre. Python n'a pas une distinction entre /src, /lib, et /bin comme le Java ou le C a.

Depuis un niveau supérieur /src répertoire est vu par certains comme vide de sens, votre répertoire de niveau supérieur peut être le haut niveau de l'architecture de votre application.

  • /foo
  • /bar
  • /baz

Je recommande de mettre tout cela sous le "nom-de-mon-produit" de l'annuaire. Donc, si vous écrivez une application nommée quux, le répertoire qui contient tous ce genre de choses est nommé /quux.

Un autre projet de l' PYTHONPATH, puis, peut inclure /path/to/quux/foo de réutilisation de l' QUUX.foo module.

Dans mon cas, depuis que j'utilise Komodo Edit, mon IDE cuft est un seul .KPF fichier. J'ai, en fait, que dans le niveau supérieur /quux répertoire, et d'omettre de l'ajouter à SVN.

304voto

Casey Points 19286

285voto

Adrian Points 671

http://As.ynchrono.us/2007/12/FileSystem-structure-of-python-project_21.html

Il s’agit de la réponse donnée couramment en #python sur Freenode.

152voto

David C. Bishop Points 2107

15voto

Jim Hunziker Points 1844

Il est intéressant de lire à travers la documentation de Python sur emballage, trop.

http://docs.Python.org/Tutorial/modules.html#packages

Assurez-vous également que vous êtes familier avec le reste de l’information sur cette page.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X