Wie man virtualenv dazu bringt, mit Fischschalen zu arbeiten


78

Ich versuche, virtualenv dazu zu bringen, mit der Fischschale zu arbeiten. Ich habe virtualenv installiert und es funktioniert gut mit bash und zsh. Wenn Sie jedoch den folgenden Befehl ausführen, wird Folgendes zurückgegeben fish: Unknown command 'source':

$ source ~/path/to/bin/activate

Weiß jemand, wie man virtualenv und die Fischschale zusammenbringt? Danke im Voraus.


2
Ich habe angefangen, github.com/adambrenecki/virtualfish zu verwenden. Das funktioniert sehr gut für meine Projekte.

Antworten:


181

Sie müssen nicht aktivieren, um virtualenv zu verwenden. Dies ist praktisch. Sie können die virtuelle Umgebung einfach direkt verwenden:

virtualenv venv
./venv/bin/pip install foo

Haben Sie versucht, von Fischen mit:

. venv/bin/activate.fish

Es ist wahrscheinlich nicht so weit verbreitet wie Bash und kann daher Probleme haben. Ein Blick auf den Commit-Verlauf zeigt eine aktuelle Korrektur:

https://github.com/pypa/virtualenv/blob/master/virtualenv_embedded/activate.fish


1
Vielen Dank. Ich hatte es versucht active.fish, musste aber virtualenv auf die neueste Version aktualisieren, damit es funktioniert.
Drbunsen

Wenn Sie auf bestimmte Fehler

2
Funktioniert perfekt für mich
Lee

@ Lee Ich bekomme dieses Problem. paste.ubuntu.com/25955380 Was bedeutet "." hier beziehen sich auf?
Abhishek Bhatia

Oh ja, ich werde jedes Mal, wenn ich etwas benutze, den vollständigen Pfad eingeben. Klingt gut.
Alper vor


11

Für virtualenv verfügt fish über eine separate Aktivierungsdatei im Verzeichnis bin mit der .fishErweiterung.

Sie müssen also Folgendes tun:

$ source ~/path/to/bin/activate.fish



2

Wenn Sie nicht verwenden können activate.fish, können Sie das binVerzeichnis einfach zu Ihrem hinzufügen PATH:

set -gx PATH /path/to/virtualenv/bin $PATH

Das ist so ziemlich alles activate.fish(naja, nicht ganz, es wird auch PYTHONHOMEnicht gesetzt (was vorher nicht festgelegt wurde, als ich es trotzdem ausprobiert habe, YMMV); und es versucht, sich mit deinem zu messen fish_prompt).

Alternativ: Ich bin ein ehemaliger Bash-Benutzer, der mit der Verwendung von Fish begonnen hat und Doug Hellman vermisst . Dahervirtualenvwrapper habe ich erst heute begonnen, an einem Ersatz namens virtualfish zu arbeiten. Er enthält einige nützliche Verknüpfungen, die Sie möglicherweise nützlich finden, obwohl sie bei weitem nicht so vollständig sind wie VEW.


2

(Dieser Thread scheint fast geschlossen zu sein, aber ich habe eine Lösung gefunden :)

So betreten Sie eine neue Fischschale mit venv Umwelt:

begin; set -lx PATH (realpath ./venv)/bin $PATH; fish; end

wenn das venv-verzeichnis ist ./venv.

Zum Deaktivieren einfach Strg-D oder exit.


Eine andere Lösung, die keine untergeordnete Shell aufruft.

Machen Sie eine venv Umgebung und geben Sie sie ein:

python3 -m venv ./venv
set -lx PATH (realpath ./venv)/bin $PATH

Verlassen Sie die Umgebung:

set -lx PATH $PATH[2..-1]

Vielen Dank ! Es ist eigentlich die einfachste Lösung für mich.
Damien
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.