題 PYTHONPATH在Bash Shell中設置為不正確的值


操作系統:macOS Sierra Beta 6 Python:2.7 殼牌:魚

我正在設置正確設置PYTHONPATH環境變量的問題。

在我的fish_config文件中,我有這一行設置PYTHONPATH:

set -gx PYTHONPATH "/opt/additionalPath" "/usr/local/lib/python2.7/site-packages";

但是當我啟動python時,當我嘗試查看路徑時,我得到了這個輸出:

>>> import sys
>>> print sys.path
['', '/opt/additionalPath\x1e/usr/local/lib/python2.7/site-packages', '/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages', '/Library/Python/2.7/site-packages']
>>> 

注意我添加的路徑之間的\ x1e。

如果我從fish啟動bash shell並回顯$ PYTHONPATH,我得到這個輸出:

/opt/additionalPath/usr/local/lib/python2.7/site-packages

我知道這些路徑應該用冒號分開,但我無法弄清楚它在哪裡完成。我的理論是bash shell中的某些東西正在設置魚殼中的路徑,但我的想法已經不多了。

任何幫助將非常感激。


2
2017-08-18 18:08


起源




答案:


你不能在魚中使用列表 PYTHONPATH,你必須使用單個字符串 : 作為bash中的分隔符:

set -gx PYTHONPATH "/opt/additionalPath:/usr/local/lib/python2.7/site-packages"

看到 這個錯誤報告 了解更多信息。


2
2017-08-18 22:37



另外,如果您使用的是2.3.0或更新的魚,那麼可以使用新的 string 內置,你可以這樣做: set -gx PYTHONPATH (string join : /opt/additionalPath /usr/local/lib/python2.7/site-packages) - Kurtis Rader