Virtualenv auf Ubuntu mit no-site-packages
Habe ich mit virtualenv in letzter Zeit während der Entwicklung in python. Ich mag die Idee einer getrennten Entwicklung der Umwelt mit dem --no-site-packages-option, aber dies zu tun während der Entwicklung ein PyGTK-app kann ein wenig schwierig sein. Das PyGTK-Module installiert werden, unter Ubuntu standardmäßig, und so möchte ich ein virtualenv (mit --no-site-packages) bewusst bestimmte Module, die sich an anderer Stelle auf dem system.
Was ist der beste Weg, dies zu tun? Oder sollte ich es einfach aufsaugen und fallen die --no-site-packages-option?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Möglichkeit ist das hinzufügen der Pfade zu Ihren code mithilfe von sys.Pfad.
Andere Möglichkeit ist die Verwendung von Website, die Prozesse .pth-Dateien hinzufügen, um sys.Pfad.
https://docs.python.org/library/site.html
Aber Sie wahrscheinlich nicht wollen, fügen Sie diese an alle Ihre zugehörigen code.
Ich habe gesehen Erwähnung von sitecustomize.py wird verwendet, um etwas wie dies, aber nach einigen Tests konnte ich nicht, dass es funktioniert wie erwartet werden könnte.
Hier erwähnt, dass die auto-import von sitecustomize.py endete in 2.5, wenn Ihr nicht auf 2.5 ausprobieren. (fügen Sie einfach einen der Pfad hinzufügen von Methoden vor, um die Datei und ziehen Sie Sie in das Verzeichnis, in Ihr Programm ausgeführt wird)
Eine Methode ist bereits in der post für die Nutzer von 2.5 und höher.
http://code.activestate.com/recipes/552729/
Finde ich in dieser situation, symlinks, oder sogar das kopieren von bestimmten Dateien (Pakete, Module, Erweiterungen) funktioniert wirklich gut.
Erlaubt dem Programm zum emulieren der Ausführung in der Zielumgebung, anstatt ändern Sie die Anwendung entsprechend der Entwicklungsumgebung.
Gleiche Angebot für so etwas wie AppEngine.
Check-out die postmkvirtualenv-hook-script hier:
https://stackoverflow.com/a/9716100/60247
In diesem Fall benutzt er es, um zu importieren, PyQt und SIP nach einem neuen Virtualenv ist erstellt, aber Sie können die Pakete, die Sie benötigen, um LIBS.
- Und Stimmrecht, das Skript, weil es ist fantastisch 🙂
Wenn Sie möchten, dass auch die links zu den relevanten system-s python-gtk-2.0 in der virtualenv, Sie können einfach verwenden Sie pip zu installieren ruamel.venvgtk:
pip installieren ruamel.venvgtk
Sie müssen nicht alles importieren, die links während der installation.
Dies ist besonders praktisch, wenn Sie mit
tox
in diesem Fall werden Sie nur brauchen, um die Abhängigkeit (für tox):und ein neu-setup python2.7 Umwelt die entsprechenden links enthalten, bevor die tests ausgeführt werden.
Mehr detaillierte Informationen, wie Sie die links-setup finden Sie in diese Antwort