All diese Umgebungsprobleme treten häufig auf, wenn Sie Python / Django entwickeln! Ich habe all diese Probleme durchlaufen und einige Lösungen getestet! Dinge, die ich getestet habe:
- Projekt läuft lokal
- Projekt läuft in virtualenv
- Projekt läuft in einer VM
- Projekt, das in einer VM mit Vagrant ausgeführt wird
Die beste Lösung, die ich gefunden habe, war # 4! Da die Firma, in der ich früher gearbeitet habe, hat jede Person im Team ein anderes Betriebssystem, alle Arten von Windows, Mac und Linux, und es braucht Zeit, um alle Abhängigkeiten für jede Umgebung zu installieren! Also haben wir uns entschlossen, virtualenv auszuprobieren, was wirklich gut ist! Trotzdem muss jede Person ihre eigene Umgebung einrichten. Das Problem in virtualenv ist, dass sich alle Python-Quellen in der von Ihnen erstellten Umgebung befinden! Ich würde diese Dateien also nicht an eine Quellversionskontrolle senden! Die beste Lösung war # 4, denn genau das brauchte ich. Vagrant verwendet Chef, um Ihre Umgebung einzurichten. Sie müssen also nur einige Rezepte schreiben und Vagrant sie für Sie ausführen lassen! Dann senden Sie diese Rezepte an SCM. Wenn die nächste Person die Dateien von SCM erhält und die VM neu lädt, werden alle Abhängigkeiten automatisch installiert!
Ich habe einen Blog-Beitrag, in dem mehr über das Thema erklärt wird, und ich habe ein Django Blank-Projekt in Github erstellt, damit Sie mithilfe von Vagrant einen Startpunkt für Ihr Projekt erhalten.
http://arthurnn.com/blog/2011/11/25/easy-django-quickstart/ (Link nicht mehr aktiv, also mit Wayback Machine verknüpft)
BEARBEITEN
Die Lösung von Chris Pratt ist ebenfalls gut, jedoch sind einige Bibliotheken nicht so einfach in allen Betriebssystemen zu installieren. Beispielsweise haben viele Mac-Benutzer Probleme, wenn sie MySQLdb-python installieren möchten. Das ist eine wirklich verbreitete Bibliothek, aber wenn jeder in Ihrem Team Zeit damit verbringen muss, diese Probleme zu lösen, ist das überhaupt nicht gut!
~/path/to/virtualenv/bin/pip freeze > ~/path/to/repo/requirements.txt
. Andere Entwickler müssen ihre eigene virtuelle Umgebung einrichten, aber es sind buchstäblich zwei Befehle -virtualenv ~/path/to/env
,~/path/to/env/bin/pip install -r ~/path/to/requirements.txt
.