Die Datei activate.fish, die derzeit vom Befehl virtualenv generiert wird, verwendet den Befehl 'source', der in fish nicht vorhanden ist. Dies führt zu einem Fehler beim Ausführen des Skripts. Eine einfache Lösung besteht darin, den Quellbefehl in ein '.' zu ändern.
Details finden Sie in den beigefügten Bildern:
der ursprüngliche Fehler
die Bearbeitung, die ich an der Datei activate.fish vorgenommen habe
das Ergebnis
Die Fischmuschel-Website sagt etwas anderes.
https://fishshell.com/docs/current/commands.html#source
. (ein einzelner Punkt) ist ein Alias für den Quellbefehl. Die Verwendung von . wird zugunsten der Quelle verworfen, und . wird in einer zukünftigen Version von fish entfernt.
Wem soll ich glauben?
Tut mir leid, ich bin zu einem Schluss gekommen, nachdem ich Ausgabe #211 auf der Seite mit Fischschalen gelesen hatte.
Anscheinend wurde die gleiche Besorgnis in Ausgabe #310 geäußert und in der neuesten Version von fish angesprochen
Das Problem auf meinem System war, dass apt-get standardmäßig nur fish 2.0.0 installiert und ein separates Repository hinzugefügt werden muss, um die Version (2.2.0) zu erhalten, in der der Befehl source
eingeführt wurde. Das Hinzufügen des PPA-Repositorys fish-shell/release-2
und das Aktualisieren des Fischpakets haben das Problem behoben. Vielen Dank für Ihre Hilfe und entschuldigen Sie die Verwirrung.
Wirklich? Ich bin kein Fisch Version 2.3.1 und die Quelle einer Virtualenv-Aktivierungsdatei funktioniert nicht.
source ~/.venvs/base/bin/activate
Unsupported use of '||'. In fish, please use 'COMMAND; or COMMAND'.
~/.venvs/base/bin/activate (line 23): if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then
^
from sourcing file ~/.venvs/base/bin/activate
called on standard input
source: Error while reading file '/Users/satkins/.venvs/base/bin/activate'
@sjatkins Sie beziehen das Skript activate
, das für bash / zsh / etc entwickelt wurde, anstelle von activate.fish
Hilfreichster Kommentar
@sjatkins Sie beziehen das Skript
activate
, das für bash / zsh / etc entwickelt wurde, anstelle vonactivate.fish