Как я могу установить PYTHONPATH в рыбе?

Следующие работы в bash:

~$ echo $PYTHONPATH <nothing> ~$ export PYTHONPATH=/path/to/test/folder ~$ echo $PYTHONPATH /path/to/test/folder ~$ python -m test_script hello world 

Но не в рыбе:

 Welcome to fish, the friendly interactive shell Type help for instructions on how to use fish ~> echo $PYTHONPATH <nothing> ~> set --universal PYTHONPATH /path/to/test/folder ~> echo $PYTHONPATH /path/to/test/folder ~> python -m test_script /usr/bin/python: No module named test_script 

Я попытался set , set --global и set --universal .

Как я могу установить PYTHONPATH в рыбе? (Если это имеет значение, я запускаю Ubuntu 14.04.)

Недостаточно установить переменную, вы должны ее экспортировать (как в bash). Экспорт означает, что подпроцессы (например, вызов Python) также получат значение.

Из документации на рыбу :

-x или –export приводит к тому, что указанная переменная среды экспортируется в дочерние процессы

Таким образом, прямой эквивалент директивы bash будет:

 ~> set --export PYTHONPATH /path/to/test/folder 

Вы можете добавить – --universal или другие аргументы, но здесь значение является временным, что соответствует исходному примеру bash.

(Нашел ответ по аналогичному вопросу .)

Если вы хотите сделать изменение постоянным, вы можете добавить следующую строку

set -xg PYTHONPATH /path/to/test/folder $PYTHONPATH

в нижней части ~/.fish/config.fish