什么时候用Python设置sys.path?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (624)

当我运行的时候

import sys 
print sys.path

在我的Mac(MacOSX10.6.5,Python2.6.1)上,我得到了以下结果。

/Library/Python/2.6/site-packages/ply-3.3-py2.6.egg
...
/Library/Python/2.6/site-packages/ipython-0.10.1-py2.6.egg
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages

/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
/Library/Python/2.6/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode

他们分为5类。

  • /Library/Python/2.6/site-Package/*.蛋
  • /Library/Python/2.6/site-包
  • ...
  • ...
  • 来自PYTHONPATH环境变量的路径。

我可以使用代码添加更多的路径

sys.path.insert(0, MORE_PATH)
  • 哪些例程设置了这些路径,以及什么时候?
  • 有些路径是在python源代码中构建的吗?
  • 是否有可能忽略插入了sys.path.INSERT的路径?我对此很好奇,就像国防部一样_WSGI,我发现路径不是用‘sys.path.插入’找到的。

提问于
用户回答回答于

大多数东西都是在Python中设置的site.py,在启动解释器时会自动导入(除非您使用该-S选项启动它)。在初始化期间,在解释器本身中设置的路径很少(你可以通过启动python来找到它-S)。

此外,一些框架(如我认为的Django)sys.path在启动时修改以满足其要求。

用户回答回答于

学习Python:

path是模块搜索路径。Python在程序启动时配置它,自动合并顶级文件的主目录(或指定当前工作目录的空字符串)、任何PYTHONPATH目录、任何.pth您创建的文件路径和标准库目录。结果是Python在每个新文件导入时搜索的目录名字符串列表。

扫码关注云+社区

领取腾讯云代金券