Ich versuche, virtualenv[wrapper]
über Cygwin auf meinem Windows-Rechner zu verwenden. Die Installation ist erfolgreich, zusammen mit easy_install
, basierend auf diesen Anweisungen: Ссылка .
Das Problem tritt auf, wenn ich mkvirtualenv [name_of_vir_env]
verwende. Ich bekomme folgende Ausgabe:
Innerhalb des testenv
-Verzeichnisses gibt es kein bin
-Unterverzeichnis, sondern nur Lib
und Scripts
. Scripts
enthält activate.bat
, das verwendet werden soll, um diese spezielle Umgebung zu aktivieren. Wenn ich jedoch versuche, dies über bash
auszuführen, erhalte ich einen Fehler:
Ich kann bash
beenden und activate.bat
aufrufen und dies ändert sich in die gewünschte Umgebung. Aber dann nicht in bash
Ich kann nicht den Befehl workon
oder irgendeinen anderen in virtualenvwrapper_bashrc
verwenden.
Wie kann ich die beiden zusammenarbeiten lassen, das heißt, in bash
bleiben, damit ich die Befehle in virtualenvwrapper_bashrc
verwenden kann?
Ich habe keine Erfahrung mit virtualenvwrapper, aber benutze virtualenv regelmäßig. Ich denke nicht, dass die activate.bat unter cygwin ausgeführt werden soll, sie funktioniert, wenn sie in der regulären Windows-Shell ausgeführt wird. Ich denke, wenn Sie cygwin verwenden, möchten Sie vielleicht etwas mehr wie bin / activate (die Version für Unix-ähnliche Betriebssysteme) verwenden.
Die cygwin-Umgebung innerhalb von bash könnte sich drastisch von der Standardumgebung unterscheiden, in die activate.bat einläuft. Wenn Sie also ein Aktivierungsscript finden, das mit bash arbeiten könnte (vielleicht finden Sie eine Kopie von einer unix-Version), würden Sie wahrscheinlich dorthin gelangen Sie können Ihren virtualenv in bash ausführen.
Das hat es für mich getan:
Die Vanille virtualenvwrapper
scheint die Cygwin-Umgebung nicht zu unterstützen.
Ein Nachteil ist jedoch, dass ausführbare Skripte im Verzeichnis Scripts
des virtualenv nur ausführbar sind, wenn Sie sie explizit an den Befehl python
übergeben und nicht ~
oder irgendetwas anderes, mit dem Cygwin implizit einen Pfad konvertiert beginnend mit /cygdriv/c/...
- das native Windows Python kann diese Pfade nicht sehen.
Ich kenne virtualenv nicht, aber ich sehe, was wie ein klassisches gemischtes Pfadsyntaxproblem von Cygwin aussieht:
Ihre Zeichenfolge ist:
%Vor%aber Cygwin interpretiert den Backslash als Flucht für das "." Charakter, produzierend:
%Vor%Dies ist in dem Fehlertext, den Sie angeben, und ist offensichtlich ein fehlerhafter Pfad. Überprüfen Sie Ihre tatsächliche Umgebungsvariable - es ist wahrscheinlich in DOS / Windows Pfadsyntax, während der interne Teil in Cygwin / Unix-Syntax ist.
Wenn ja, versuchen Sie es mit os.path.join, um die beiden Teile miteinander zu verbinden und sehen Sie, ob Sie daraus eine konsistente Syntax erhalten.
Tags und Links python cygwin virtualenv