2012-06-08 20 views
46

Ich versuche, virtualenv mit der Fischschale zu arbeiten. Ich habe virtualenv installiert und es funktioniert gut mit bash und zsh. Allerdings läuft die folgenden Befehl fish: Unknown command 'source':Wie bekomme ich virtualenv mit Fischschale zu arbeiten

$ source ~/path/to/bin/activate 

Wer weiß, wie virtualenv und die Fische Schale, um gemeinsam zu arbeiten. Danke im Voraus.

+2

ich angefangen habe https://github.com/adambrenecki/virtualfish zu verwenden funktioniert sehr gut für meine Projekte. –

Antwort

81

Sie müssen nicht aktivieren, um virtualenv zu verwenden, es ist eine Bequemlichkeit. Sie können nur die virtualenv direkt verwenden:

virtualenv venv 
./venv/bin/pip install foo 

Haben Sie aus Fisch versucht, mit:

. venv/bin/activate.fish 

Es wahrscheinlich nicht so weit verbreitet ist wie bash so Probleme haben - Blick auf die commit Geschichte zeigt eine letzte Update:

https://github.com/pypa/virtualenv/commits/develop/virtualenv_embedded/activate.fish

+0

Danke. Ich hatte 'active.fish' ausprobiert, aber ich musste virtualenv auf die neueste Version updaten, damit es funktionierte. – drbunsen

+0

Wenn Sie auf bestimmte Fehler stoßen bitte Datei an http://github.com/pypa/virtualenv Issue tracker –

+1

Funktioniert perfekt für mich – Lee

2

Wenn Sie nicht verwenden können, activate.fish, können Sie einfach fügen Sie das bin Verzeichnis Ihrer PATH:

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

Das ist so ziemlich alles activate.fish tut (na ja, nicht ganz, es führt zum Löschen auch PYTHONHOME, (was nicht vorher gesetzt wurde, wenn ich es versucht, wie auch immer, YMMV); und es versucht, mit Ihrem zu verwirren.

Alternativ: Ich bin ein ehemaliger Bash Benutzer, die sich Fish gestartet ist mit und verpasst Doug Hellman virtualenvwrapper ist, so habe ich heute gerade erst begonnen Arbeiten an a replacement called virtualfish - es ein paar praktische Shortcuts hat Ihnen nützlich sein könnten, obwohl es bei weitem nicht ist, als vervollständigen als VEW.

0

(Dieser Thread schließen geschlossen zu sein scheint, aber ich fand eine Lösung :)

Um einen neuen Fisch Schale mit Venv eingeben environment:

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

wenn das Verzeichnis venv ./venv ist.

Um zu deaktivieren, nur Ctrl-d oder .


Eine andere Lösung, die eine untergeordnete Shell nicht aufruft.

Fabrikat und geben Sie einen Venv envrionment:

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

Verlassen des envrionment:

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