我怎样才能在鱼中设置PYTHONPATH?

dav*_*one 5 python ubuntu fish

以下在bash中有效:

~$ echo $PYTHONPATH
<nothing>
~$ export PYTHONPATH=/path/to/test/folder
~$ echo $PYTHONPATH
/path/to/test/folder
~$ python -m test_script
hello world
Run Code Online (Sandbox Code Playgroud)

但不是鱼:

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
Run Code Online (Sandbox Code Playgroud)

我试过了set,set --global而且set --universal.

我怎样才能在鱼中设置PYTHONPATH?(如果重要的话,我正在运行Ubuntu 14.04.)

dav*_*one 8

设置变量是不够的,您也必须导出(就像在bash中一样).导出意味着子进程(如Python调用)也将获得值.

来自鱼类文件:

-x或--export导致将指定的环境变量导出到子进程

所以直接等同于bash指令将是:

~> set --export PYTHONPATH /path/to/test/folder
Run Code Online (Sandbox Code Playgroud)

你可以添加--universal或其他参数,但这里的值是临时的,它与原始的bash示例相匹配.

(通过类似问题找到答案.)


Jak*_*ski 6

如果您想让更改永久存在,则可以添加以下行

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

到底部~/.fish/config.fish

  • 我的路径是“~/.config/fish/config.fish”,但这仍然有效,谢谢 (4认同)