PYTHONPATH sys.path的区别

时间:2015-01-17 16:40:49

标签: python

我在向PYTHONPATH添加目录时遇到问题 目录为/usr/local/lib/python2.7/dist-packages

当我跑步时

PYTHONPATH=/usr/local/lib/python2.7/dist-packages python -c 'import sys; print sys.path'

我无法在结果中找到它。 尝试一下我发现了以下内容: 当sys.path作为前缀时,该目录将从/usr/local/lib/python2.7消失,例如以下工作正常:

PYTHONPATH=/usr/local/lib python -c 'import sys; print sys.path'

我没有在其他地方设置PYTHONPATH,我检查了用sudo运行它。

1 个答案:

答案 0 :(得分:2)

路径可能出现的原因有多种。确保你没有点击其中一个:

  • 路径必须存在,忽略不存在的路径。来自PYTHONPATH documentation

      

    默认忽略不存在的目录。

  • 删除重复项(保留第一个条目);路径是绝对的(相对于当前工作目录),并且在不重要的情况下在不重要的平台上进行比较。

    因此,如果您的sys.path中的相对路径达到相同的绝对路径,则仅保留第一个条目。

  • 在正常化和清理之后,site module尝试导入sitecustomizeusercustomize模块。这些也可以操纵sys.path

您可以在清理后立即仔细查看sys.path,并通过将usercustomize模块作为命令行工具运行来导入site模块:

python -m site

它会以可读的每行一行格式打印出您的sys.path