2012-03-22 1 views
0

Nous avons plusieurs projets Python qui ont des dépendances les uns sur les autres. Hiérarchiquement, ceux-ci sont organisés comme ceci:Organisation de plusieurs projets Python pour le déploiement et/ou la distribution

 
P1 
P2 
... 
Pn 

Chacun d'eux est un projet PyDev au sein d'Eclipse et ils coexistent très bien dans cet environnement. Nous sommes en train de structurer notre processus de construction pour nous permettre de les déployer et de les distribuer de manière plus systématique. Actuellement, nous compressons ces projets et les copions pour le déploiement.

J'ai besoin de conseils sur la façon d'effectuer cette tâche en utilisant distutils. Notre objectif est d'avoir un script pour construire un fichier zip (ou fichier tar) en utilisant distutils qui contient tout le code nécessaire et les données/propriétés nécessaires des projets P1 à Pn. Nous devrions alors être en mesure de déployer ceci avec setup.py et d'avoir accès à notre couche Web basée sur DJango.

Ma première tentative consiste à créer un projet dont le seul but est de créer les artefacts de déploiement. Cela sera assis parallèlement aux projets P1 à Pn, appelés PBuild.

Est-ce que cela vous semble raisonnable? J'ai quelques problèmes avec cette approche. Est-ce que quelqu'un a d'autres idées sur la façon de faire cela?

Répondre

1

Il existe différentes philosophies sur la façon dont les applications doivent être empaquetées, mais la plupart des développeurs Python adhèrent à une approche très minimaliste. En d'autres termes, vous empaquetez les plus petites unités de logique possibles. Donc, votre objectif ici ne devrait pas être de tout entasser ensemble, mais d'emballer chaque application discrète séparément. Par application, ici, je ne veux pas nécessairement dire que chaque application Django, même si elle éclate certaines des applications dans leurs propres paquets peut aussi être utile.

Tout est question de réutilisabilité. Toute pièce qui pourrait servir dans un autre scénario devrait avoir son propre paquet. Ensuite, vous pouvez les configurer pour avoir des dépendances sur les autres paquets dont ils ont besoin.

+0

Merci pour vos commentaires. Donc, en ce qui concerne la configuration ci-dessus, étant donné que nous ne pouvons pas diviser les projets individuels en unités plus petites, recommanderiez-vous d'emballer chacun de ces projets séparément? – pingping

+0

Je ne sais pas vraiment ce qu'est un projet Eclipse, mais du point de vue distutils s'il a un nom, une version et un ensemble de fichiers, c'est un projet. Ecrivez un fichier setup.py et lancez-le. –

Questions connexes