In dieser Konfiguration richten wir ein Python-virtualenv
ein . Die Absicht
hinter der Verwendung von virtualenv
als Python-Entwicklungsumgebung
um vom globalen System installierte ausführbare Dateien und Bibliotheken mit Paketen zu trennen,
die direkt in virtualenv
installiert werden . Als Ergebnis ist man in der Lage,
eine gegebene Python-Anwendung mit mehreren Systemumgebungen auf einem einzigen
Host zu testen.
Die Installation von virtualenv
unter Debian Linux ist einfach wie folgt:
# apt-get install python-virtualenv
In diesem Stadium können wir unser erstes virtualenv
erstellen Python
Entwicklungsumgebung zB. myapp
$ virtualenv --no-site-packages myappRunning virtualenv with interpreter /usr/bin/python2New python executable in myapp/bin/python2Außerdem Erstellung einer ausführbaren Datei in myapp/bin/pythonInstallation von Setuptools, pip...fertig.
Durch die Verwendung des --no-site-packages
Option stellen wir sicher, dass keine systemglobalen
Pakete mit unserem neuen virtualenv
verknüpft werden Umgebung.
Lassen Sie uns genauer untersuchen, was gerade passiert ist. Erstensvirtualenv
hat ein neues Verzeichnis erstellt, das als Container für
unsere myapp
dient Entwicklung.
$ tree -L 2 myapp/myapp/├── bin│ ├── activate│ ├── activate.csh│ ├── activate.fish│ ├── activate_this.py│ ├── easy_install│ ├── ─ easy_install-2.7│ ├── ─ pip│ ├── pip2│ ├── ─ pip2.7│ ├── python -> python2│ ├── python2│ └── python2.7 -> python2├── lib│ ├ ── python2.7│ └── python-wheels└── lokal ├── bin -> /home/debian/myapp/bin └── lib -> /home/debian/myapp/lib7 Verzeichnisse, 12 DateienWie Sie unser neues
virtualenv
sehen können Die Umgebung enthält alle
notwendigen Werkzeuge, um unsere Umgebung zu gestalten, wie separate Python-, Pip- und
easy_install-Binärdateien.An dieser Stelle sind wir bereit,
virtualenv
einzugeben Umgebung:$ cd myapp/$ source bin/activate(myapp)debian@hostname:~/myapp$Einmal geben Sie
virtualenv
ein Python-Umgebung ändert sich Ihr PATH zu
binären ausführbaren Dateien:$ echo $PATH/home/debian/myapp/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/gamesAls Ergebnis werden alle Ihre Python-Befehle mit
virtualenv
ausgeführt Umgebungs-Binärdateien. Verwenden Siewhich
Befehl, um Ihren
vollständigen Pfad zu Ihren Python-Binärdateien zu finden:(myapp)debian@hostname:~/myapp$ which python pip easy_install/home/debian/myapp/bin/python/home/debian/myapp/bin/pip/home/debian/myapp/bin/easy_installJetzt können wir Pakete installieren, ohne die globale systemweite
Umgebung zu beeinträchtigen. Als Beispiel können wirdjango
installieren paket lokal zu
nur unserermyapp
Umgebung:(myapp)debian@hostname:~/myapp$ pip install djangoDjango wird heruntergeladen/entpackt Django-1.8-py2.py3-none-any.whl wird heruntergeladen (6,2 MB):6,2 MB heruntergeladen. Gesammelte Pakete werden installiert:django. Django wurde erfolgreich installiert. Aufräumen. ..Testen Sie
django
Paketinstallation:(myapp)debian@hostname:~/myapp$ python -c "import django; print(django.get_version())"1.8Alles funktioniert wie erwartet. Sobald Sie Ihre Arbeit mit
virtualenv
abgeschlossen haben
Umgebung können Sie mitdeactivate
verlassen Funktion bereitgestellt
innerhalb vonbin/activate
Skript:(myapp)debian@hostname:~/myapp$ debian@hostname:~/myapp$ deaktivierenEin Versuch, auf
django
zuzugreifen Pakete, die invirtualenv
installiert sind Umgebung schlägt jetzt fehl:$ python -c "import django; print(django.get_version())"Traceback (letzter Aufruf zuletzt):Datei "", Zeile 1, in ImportError:No module named django