J'ai actuellement configuré git et virtualenv d'une manière qui correspond exactement qui répond exactement à mes besoins et qui, jusqu'à présent, n'a causé aucun problème. Cependant, je suis conscient que Cependant, je suis conscient que ma configuration n'est pas standard et je me demande si quelqu'un qui est plus familier avec les peut m'indiquer si, et où, il y a des risques de problèmes.
Mon installation
Mon virtualenv se trouve à l'intérieur de mon dépôt git, mais git est configuré de manière à ignorer l'option bin
et include
et tout ce qui se trouve dans lib
sauf pour le site-packages
répertoire.
Plus précisément, mon .gitignore
ressemble à ceci :
*.pyc
# Ignore all the virtualenv stuff except the actual packages
# themselves
/bin
/include
/lib/python*/*
!/lib/python*/site-packages
# Ignore easyinstall and setuptools
/lib/python*/site-packages/easy-install.pth
/lib/python*/site-packages/setuptools.pth
/lib/python*/site-packages/setuptools-*
/lib/python*/site-packages/pip-*
Avec cet arrangement, je -- et toute autre personne travaillant sur un checkout du projet -- peux utiliser virtualenv et pip comme d'habitude mais avec les avantages suivants :
-
Si quelqu'un met à jour ou installe un paquet et envoie ses modifications, toute autre personne qui envoie ces modifications reçoit automatiquement la mise à jour : elle n'a pas besoin de remarquer qu'un paquet de type
requirements.txt
a été modifié ou si vous faitespost-receive
la magie du crochet. -
Il n'y a pas de dépendances réseau : tout le code nécessaire au fonctionnement de l'application se trouve dans le dépôt git.
Je suis conscient que cela ne fonctionne qu'avec les paquets purement Python, mais c'est tout ce qui m'intéresse pour le moment.
Quelqu'un connaît-il d'autres problèmes liés à cette approche dont je devrais être conscient ?