Vielleicht ist es an der Zeit, Virtualenv zu nutzen . Virtualenv erstellt in sich geschlossene Python-Umgebungen mit der von Ihnen angegebenen Python-Version. Nachdem Sie die neue virtuelle Umgebung aktiviert haben, wird alles, was Sie mit pip installieren, in dieser Umgebung gespeichert. Dies hilft, Situationen wie die von Ihnen beschriebene zu vermeiden.
Erstellen und aktivieren Sie z. B. eine neue Python-Umgebung mit dem Standard-Python:
# create environment $ virtualenv --distribute myproject New python executable in myproject/bin/python Installing distribute...done. Installing pip...done. # activate environment $ . ./myproject/bin/activate # check default python (myproject)$ which python /Users/me/myproject/bin/python
Es wird empfohlen, die --distribute
Optionen zu verwenden, um anzugeben, dass die Verteilung zum Installieren von Paketen in der neuen Umgebung anstelle von (den älteren) setuptools verwendet werden soll. Nach der Aktivierung ändert sich die Eingabeaufforderung, um anzuzeigen, welche Python-Umgebung aktiv ist.
Installieren Sie jetzt ein Paket. Die Dateien werden in mein Projektverzeichnis verschoben:
# install django (myproject)$ pip install django ... # search for django dir (myproject)$ find myproject -iname django myproject/lib/python2.7/site-packages/django
Zum Schluss deaktivieren Sie:
# deactivate and check for default python (myproject)$ deactivate $ which python /usr/bin/python
So erstellen Sie eine Umgebung mit einer nicht standardmäßigen Python-Version:
$ virtualenv --distribute -p /path/to/custom/python mynewproject
Standardmäßig kopiert virtualenv alle Pakete, die für die Python-Version, die Sie zum Booten verwenden, installiert sind, in die neue Umgebung. Um dies zu verhindern und eine leere Umgebung zu erstellen, verwenden Sie die --no-site-packages
Option. Dies ist besonders nützlich, um Umgebungen zu erstellen, die exakt reproduziert werden können, z. B. von der Entwicklung bis zur Produktion.
Update: Ab Version 1.7 --no-site-packages
ist das Standardverhalten von virtualenv geworden.
Wenn Sie mehr Details wünschen, gibt es viele Tutorials und Blogbeiträge online. Z.B:
- Hinweise zur Verwendung von pip und virtualenv mit Django. (Die meisten Beiträge sind nicht für Djangos spezifisch)
- Mit virtualenv arbeiten.
Probieren Sie es aus und ich bin mir sicher, dass Sie dabei bleiben werden.
Hinweis: Stellen Sie sicher, dass der Python-Interpreter für Ihre ausführbaren Skripts nicht fest codiert ist. Dh ihre erste Zeile sollte so #!/usr/bin/env python
etwas sein und nicht #!/usr/bin/python
.