2011-01-14 11 views
12

Ich habe Python2.6 und Django1.2.3 bereits auf meinem System installiert (Ubuntu 10.x).
Dies ist das Setup, das ich für die meisten meiner Projekte verwende. Aber für einige Projekte brauche ich Sandbox-Umgebungen, verschiedene Django-Versionen, einige zusätzliche Python-Module und manchmal sogar verschiedene Python-Versionen.Workflow mit virtualenv und pip

Also, ich versuche jetzt pip und virtualenv zu verwenden, aber ich bin nicht in der Lage, Python und Django-Version zu ändern. Muss ich das Standard-Setup entfernen und alle vorhandenen Projekte in 1 virtualenv verschieben. Kann ich das vermeiden? Auch wenn ich das tue, wie kann ich eine andere Version von Python angeben?

Wenn ich die alten Einstellungen entfernen muss. Wie mache ich das? Ich habe zur Zeit die meisten der Dinge in /usr/local/lib/python2.6/dist-packages/ installiert, aber ich bin mir nicht sicher, ob es auch irgendwo anders installiert ist.

Wenn ich ein komplett leeres Setup mit nur Ubuntu habe, was ist der ideale Workflow? Ist es dieses?

Install python 
$ sudo apt-get install python-setuptools 
$ sudo apt-get install python-virtualenv 
$ sudo easy_install pip 
$ sudo pip install virtualenvwrapper 
+1

virtualenv wird Ihr Leben retten - guten Ruf. – JohnO

Antwort

9

Sie tun möchten:

virtualenv --python=/path/to/python/version --no-site-packages ENV_NAME 

Zum Beispiel:

virtualenv --python=/usr/bin/python2.6 --no-site-packages my_project_env 

Wenn Sie dies für Ihre Projekte folgen sollten Sie in der Lage sein, für jede einzelne eine separate Konfiguration zu haben.

1

können Sie virtualenv --no-site-packages ENVNAME verwenden, und das wird die Standard-Django in Ihrem System Python nicht in der neuen Umgebung sicher aufgenommen werden.

Für verschiedene Versionen von Python können Sie follow these instructions from a superuser.com post.

5

Ich habe jede Python-Version installiert, die ich benötige (also 2.4, 2.5, 2.6, 2.7, 3.1 und auch 3.2). Das ist immer das Beste, damit Sie das System Python nicht durcheinander bringen.

Ich habe sie in/opt installiert. Wie so (Sie müssen eine Reihe von Ubuntu-Paketen zu, zuerst):

./configure --prefix /opt/pythonxx 
make -j2; make install # j2 is a nice trick there for dualcores not everyone knows. 

Dann für mich jede Version installieren, um die Dinge, die ich brauche. Ich beginne mit der Installation verteilen:

wget http://nightly.ziade.org/distribute_setup.py 
/opt/pythonxx/bin/python distribute_setup.py 

(Mit Ausnahme von Python 3, der distribute_setup3.py braucht) Dann kann ich installieren pip

/opt/pythonxx/bin/easy_install pip 

Und virtualenv:

/opt/pythonxx/bin/pip install virtualenv 

(Virtualenv3 oder virtualenv5 für Python 3)

Und das war's! Wenn ich ein virtualenv mit Python 2.4 machen möchte, mache ich:

Und Python 2.7:

/opt/python27/bin/virtualenv foobar 

Lauf Python ist nur

/opt/python24/bin/python 

Etc. Ich nie etwas in den oben Pythons außer dieser Module installieren und PIL (weil PIL ist ein Schmerz, aber jetzt gibt es Kissen , also musst du das auch nicht tun). Ich benutze zc.buildout und virtualenv, um die Pythons sauber zu halten.

+0

Ich habe eine Frage gestellt, um eine Liste aller benötigten Pakete zu erstellen, weil ich immer eine halbe Stunde dafür benötige, wenn ich ein neues Ubuntu installiere. :) http://askubuntu.com/questions/21547/what-are-the-packages-libraries-i-should-install-before-compiling-python-von-sou –

Verwandte Themen