Virtualenv et de la source de contrôle de version
J'ai récemment commencé un projet Django et je me suis vite rendu compte que virtualenv sera vraiment utile pour de nombreuses raisons. J'ai configuré le virtualenv et mon projet, mais maintenant je me demande quel fichier je dois ajouter à mon contrôle à la source (dans mon cas, Mercurial). Dois-je ajouter tous les fichiers dans le venv dossier? Comment puis-je m'assurer d'un collègue peut cloner et de commencer à travailler immédiatement sans avoir à l'installation de l'env de nouveau?
- Je ne recommande pas de mettre le virtualenv sous contrôle de code source, il ne sera pas portable sur l'ensemble des versions de python, OSs, ou les plates-formes 32 et 64 bits. Au lieu de cela, il suffit d'utiliser
~/path/to/virtualenv/bin/pip freeze > ~/path/to/repo/requirements.txt
. D'autres développeurs auront besoin pour l'installation de leur propre virtualenv, mais il est littéralement à deux commandes -virtualenv ~/path/to/env
,~/path/to/env/bin/pip install -r ~/path/to/requirements.txt
. - Chers googleurs, voir aussi: stackoverflow.com/a/6012590/82216
Vous devez vous connecter pour publier un commentaire.
Vous générer un "exigences" fichier (généralement
requirements.txt
) que vous vous engagez avec votre projet:Ensuite, chaque développeur de créer leur propre virtualenv et de l'exécution:
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é:
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éé Django Vide projet sur github de sorte que vous pouvez obtenir que pour avoir un point de départ de votre projet à l'aide de vagrant.
http://arthurnn.com/blog/2011/11/25/easy-django-quickstart/ (lien n'est plus actif, donc liée à la Wayback Machine)
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!
MySQLdb-python
C'est vraiment une bonne raison d'utiliser un environnement complet, mais peut-il pas être accompli avec pip/requirements.txt?