PYTHONPATH sys.path 差异

标签 python

我在将目录添加到我的 PYTHONPATH 时遇到问题 该目录是/usr/local/lib/python2.7/dist-packages

当我运行时

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

我在结果中找不到它。 尝试一下我注意到以下几点: 当 /usr/local/lib/python2.7 作为前缀时,该目录将从 sys.path 中消失,例如以下工作正常:

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

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

最佳答案

显示路径的原因有多种。确保您没有遇到以下任一情况:

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

    Non-existent directories are silently ignored.

  • 删除重复项(保留第一个条目);路径设为绝对路径(相对于当前工作目录),并在重要的平台上不区分大小写进行比较。

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

  • 规范化和清理后, site module尝试导入sitecustomizeusercustomize模块。这些可以操纵sys.path也是。

您可以仔细查看您的sys.path清洁后,如果有 usercustomize通过运行 site 导入模块模块作为命令行工具:

python -m site

它会打印出你的 sys.path采用可读的每条目一行格式。

关于PYTHONPATH sys.path 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28001730/

相关文章:

python 缩进失败?

python - 在另一个路由 Flask 中进行表单验证

python - 需要解释为什么以下代码跨越无穷大

Python:比较两个字符串并返回它们共有的最长段

python - PyMySQL、MySQL、Python : String formatting

python - Python 中具有非相等连接的计数

jquery - 如何将 jquery datepicker 从模板传递到 python Django 中查看?

python - 递归代码没有显示正确的输出?

python - 如何将命令行参数传递给 ipython

python - 加快在 matplotlib 中绘制图像