如何在fish中设置PYTHONPATH?

9
以下内容在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

我尝试过使用setset --globalset --universal命令,但是在fish中如何设置PYTHONPATH呢?(如果有影响的话,我正在运行Ubuntu 14.04。)
2个回答

11
设置变量不足够,您还必须将其导出(就像在bash中一样)。 导出意味着子进程(如Python调用)也会获得该值。
根据Fish文档

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

因此,与bash指令的直接等效项是:
~> set --export PYTHONPATH /path/to/test/folder

您可以添加--universal或其他参数,但这里的值是临时的,与原始的bash示例相匹配。
(通过类似问题找到答案。)

6
如果您想要使更改永久生效,可以在~/.fish/config.fish文件的末尾添加以下行:

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


4
对我来说,路径是~/.config/fish/config.fish,但这仍然有效,谢谢。 - smac89

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接