2010-11-03 5 views
6

Je dois déployer une application Django sur un système SuSE Linux Enterprise 11. Les règles d'entreprise indiquent que je dois déployer uniquement des RPM. Bien que je puisse utiliser ./setup.py bdist_rpm pour chaque dépendance, ce n'est pas vraiment sain, car RPM n'enregistre pas encore toutes les dépendances. Par conséquent, je n'aurais aucun réel avantage à utiliser les RPM et la gestion manuelle des dépendances est quelque peu lourde et je voudrais l'éviter.Déploiement de Django avec virtualenv dans un package de distribution?

Maintenant, j'ai eu l'idée suivante: Lors de la construction d'un paquet, je pouvais créer un virtualenv, installer toutes mes dépendances via pip puis l'empaqueter avec le reste du code en un seul RPM solide.

Quelle est la sensibilité de cette approche?

Répondre

2

J'utilise cette approche depuis environ un an maintenant et ça marche plutôt bien. L'une des raisons est que vous aurez envie de vérifier les lignes bang dans les scripts python écrits dans le répertoire bin de virtualenv. Ceux-ci finiront par être des noms de chemin complets utilisés dans votre environnement de construction, qui ne sera probablement pas le même répertoire que celui où vous finissez d'installer le virtualenv. Il se peut donc que vous deviez ajouter des appels sed dans la post-installation de votre RPM pour ajuster les chemins.

+0

Vous pouvez rechercher l'option --relocatable lors de la création de votre virtualenv; Ce n'est pas parfait, mais cela règle certains des problèmes avec des chemins absolus. –

Questions connexes