78 votes

Virtualenv et contrôle de version source

J'ai récemment lancé un projet Django et j'ai vite compris que virtualenv serait vraiment utile pour plusieurs raisons. J'ai mis en place virtualenv et mon projet, mais je me demande maintenant quel fichier je devrais ajouter à mon contrôle de source (dans mon cas, Mercurial). Dois-je ajouter tous les fichiers dans le dossier venv? Comment puis-je m'assurer qu'un collègue peut cloner et commencer à travailler immédiatement sans avoir à configurer de nouveau env.

95voto

Chris Pratt Points 53859

Vous générez un fichier "exigences" (généralement requirements.txt ) que vous engagez avec votre projet:

 pip freeze > requirements.txt
 

Ensuite, chaque développeur créera son propre virtualenv et exécutera:

 pip install -r requirements.txt
 

6voto

Arthur Neves Points 5753

Tous ces environnement soucis sont une sorte de courant lorsque vous faites python/django développement! Je suis passé par tous ces problème, et j'ai testé quelques solutions! Les choses que j'ai testé:

  1. Projet en cours d'exécution local
  2. Projet en cours d'exécution dans le virtualenv
  3. Projet en cours d'exécution sur une machine virtuelle
  4. Projet en cours d'exécution sur une machine virtuelle, à l'aide de vagrant

La meilleure solution que j'ai trouvé est le n ° 4! parce que la société que j'ai l'habitude de travailler, chacun dans l'équipe a un système d'exploitation différent, toutes sortes de windows, mac et linux, et d'installer toutes les dépendances pour chaque environnement, il faut du temps! Nous avons donc décidé d'essayer virtualenv, ce qui est vraiment bon! mais encore, chaque personne a à l'installation de son propre enviroument. Le problème dans le virtualenv est que toutes les sources python sont au sein de l'environnement que u créer! Je ne voudrais pas pousser ces fichiers à une source de contrôle de version! La meilleure solution est le n ° 4, parce que c'était exactement ce dont j'avais besoin, Vagrant utilise le Chef de la configuration de votre environnement, si vous avez juste à écrire quelques recettes, et de laisser les exécuter pour u! Alors u pousser ces recettes de SCM, puis, lorsque la personne à côté de vous obtenir les fichiers de SCM et de la recharge de la VM toutes les dépendances seront automatiquement installer!

J'ai un blog pour expliquer plus sur le sujet ainsi que j'ai créé un Django Vide projet sur github si vous pouvez obtenir que pour avoir un point de départ de votre projet à l'aide de l'errance.

http://arthurnn.com/blog/2011/11/25/easy-django-quickstart/

MODIFIER

Solution de Chris Pratt est un bon un, cependant certaines bibliothèques ne sont pas si simples à installer dans tous les systèmes d'exploitation, par exemple, beaucoup de gens sur Mac les problèmes quand ils veulent installer MySQLdb-python. qui est un très commun de la bibliothèque, mais si tout le monde dans votre équipe de a à passer du temps à résoudre ces problèmes, n'est pas bon du tout!

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