为什么我的Python'sys.path'与我用来运行代码的每个工具不同?

时间:2014-01-20 14:21:19

标签: python pythonpath sys.path

我对用于构建Python sys.path的规则感到困惑。我理解fist entry will be“包含用于调用Python解释器的脚本的目录”,或者如果交互式调用Python则为空字符串,并且最后的entires将是基于Python安装的条目。但我对这两组条目之间的情况感到困惑,特别是它们与我的PYTHONPATH有何关系。

当我(A)执行一个脚本,在sys.path目录中的系统命令提示符处使用python test.py打印出../scriptpath的条目时,我得到:

/Users/Rax/Documents/Projects/scriptpath
... (my system PYTHONPATH, as configured in .bash_profile)  #(i)
/Users/Rax/Documents/Projects/scriptpath
... (system entries)

这与(B)在IPython shell中的import test中运行../scriptpath时得到的不一样

(empty string)
/usr/local/bin
... (my system PYTHONPATH)  #(i)
/Users/Rax/Documents/Projects/scriptpath
... (system entries)
/Library/Python/2.7/site-packages/IPython/extensions

或(C)在Python shell中

(empty string)
... (my system PYTHONPATH)  #(i)
/Users/Rax/Documents/Projects/scriptpath
... (system entries)

while,(D)当我在IDE(PyCharm)中运行test.py时,我得到了

/Users/Rax/Documents/Projects/scriptpath
... (user-added entries in the PyCharm Interpreter Paths settings)  #(i)
... (system entries)

或(E)

/Users/Rax/Documents/Projects/scriptpath
... (user-added entries in the PyCharm Interpreter Paths settings)  #(i)
/Users/Rax/Documents/Projects/scriptpath
... (system entries)

取决于我是否可以选择是否启用“内容根目录”。

I think I understand其中(i)条目来自每种情况:所有都使用我的系统PYTHONPATH,但PyCharm除外,它使用“解释器设置”中“路径”末尾的“用户添加”路径“;但是我不明白其他的东西来自哪里(或者就此而言,PyCharm如何能够忽略我的系统PYTHONPATH)。

为什么.. scriptpath条目有时会在(i)之前和之后重复?使用了哪些规则来添加其他条目(例如{B}中的/usr/local/bin

0 个答案:

没有答案