Aufruf conda Quelle aktivieren von bash-Skript

Ich versuche zu aktivieren mein conda env über ein bash-Skript. Auch wenn das Skript läuft gut, und mein PFAD wird zu werden verändert in das Skript, es wird immer irgendwie zurücksetzen, nachdem das Skript beendet wird. Ich kann call source activate test von der cmd-Zeile und es funktioniert gut. Ein Beispiel zusammen mit Ausgabe unten.

Skript:

PycharmProjects/test » cat ./example.sh
echo "before calling source: $PATH"
source activate test
echo "after calling source: $PATH"

Ausgabe:

./example.sh
before calling source: /Use rs/me/miniconda3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin

discarding /Users/me/miniconda3/bin from PATH
prepending /Users/me/miniconda3/envs/test/bin to PATH

after calling source: /Users/me/miniconda3/envs/test/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin`

aber wenn ich echo $PATH nachdem das Skript beendet ist, können Sie sehen, dass die $PATH hat sich nicht geändert (d.h. keine /Users/me/miniconda3/envs/test/bin):

PycharmProjects/test » echo $PATH /Users/me/miniconda3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin

  • echo $PATH wo sagt das? Sind Sie example.sh als Skript selbst (d.h. ./example.sh)? Statt sourceing (D. H. source example.sh)?
  • läuft example.sh als Skript (./example.sh). Ich rief echo $PATH nach Skript fertig ausgeführt, nur um zu zeigen, $PFAD ist tatsächlich nicht geändert.
  • Es läuft wie ein Skript, das ändert sich halt mit der shell das script ausgeführt. Das ist, warum Sie benötigen, um source aktivieren Skript zu machen, gelten für das ausgeführte Skript/shell in den ersten Platz.
  • Möglich, Duplikat der Wie Quelle virtualenv aktivieren, die in einem Bash-Skript
  • Dank der Beschaffung der Skript behebt es.
InformationsquelleAutor matt_k | 2015-12-30
Schreibe einen Kommentar