Here我读了如何在鱼中附加到PYTHONPATH,这对于一个字符串工作正常。
但是,如果我这样做:
set --export PYTHONPATH $PYTHONPATH path1 path2
我明白了:
>> import os
>> os.environ["PYTHONPATH"]
'path1\x1epath2'
可替换地:
$ python -c "import os; print os.environ['PYTHONPATH']"
path1path2
这里有什么问题?
答案 0 :(得分:2)
如果您正在使用鱼2.2.0(或刚刚发布的2.3.0),则只有三个env变量会自动拆分并由冒号连接:PATH,MANPATH,CDPATH。所有其他“路径”列表env变量都被视为单个元素数组,除非您将它们显式设置为多个值,如示例中所示。但是,如果在导出时执行此操作,则值将由ASCII RS(0x1E)字符分隔。你应该像处理bash,zsh等一样处理PYTHONPATH。
鱼类项目有几个问题,我们正在讨论对这些变量处理的可能改进。参见
https://github.com/fish-shell/fish-shell/issues/2090
答案 1 :(得分:0)
您可以通过冒号分隔环境变量中的路径来设置多个路径。我不使用鱼,但在ZSH中,我会这样做:
$ export PYTHONPATH=/path/to/foo:/path/to/bar
$ python -c "import sys; print sys.path"
['', '/path/to/foo', '/path/to/bar', ...
答案 2 :(得分:0)
Fish在即将发布的3.0版本中提供了一种解决此问题的新机制。
有关更多信息,请参见以下PR:https://github.com/fish-shell/fish-shell/pull/5245