python 文档位于http://docs.python.org/library/sys.html http://docs.python.org/library/sys.html比如说sys.path
is...
从环境变量 PYTHONPATH 以及依赖于安装的默认值初始化。
我在我的路径中找到了一个路径项sys.path
这导致了问题,并且在追踪它时遇到了很多困难。我在谷歌上能找到的只是人们解释如何add项目到PYTHONPATH
多变的。
我的问题是:有没有什么工具可以帮助追踪why您的某个特定项目sys.path
?如何找到有关“依赖于安装的默认值”的更多信息?
到目前为止,我发现部分答案是使用strace
在 python 本身上并寻找.pth
文件。我还找到了一个sys.path_importer_cache
,这可能适用也可能不适用。
我最近遇到了一些问题sys.path
以下是我如何尝试找出条目的来源。我能够跟踪所有条目以及它们来自哪里。希望这也会对您有所帮助。
第一个添加的C:\WINNT\system32\python27.zip
(更多细节参见 PEP273)。
接下来添加的条目来自 Windows 注册表中的条目。参赛作品C:\Python27\DLLs;C:\Python27\lib; C:\Python27\lib\plat-win; C:\Python27\lib\lib-tk
来自HOT_KEY_LOCAL_USER/Python/PythonCore/2.7/PythonPath
在注册表中。更多详细信息请参见Python源代码注释http://svn.python.org/projects/python/trunk/PC/getpathp.c http://svn.python.org/projects/python/trunk/PC/getpathp.c(在我找到上面的链接之前,这些条目对我来说是最难理解的)。
接下来,正如中所解释的site
包文档(link http://docs.python.org/library/site.html), sys.path
是由sys.prefix
and sys.exec_prefix
。在我的电脑上它们都指向C:\Python27
。默认情况下它会搜索lib/site-packages
无论如何。所以现在的条目C:\Python27; C:\Python27\lib\site-packages
已附加到上面的列表中。
接下来它会搜索每个.pth
文件按字母顺序排列。我有easy_install.pth
, pywin32.pth
and setuptools.pth
在我的网站包中。这就是事情开始变得奇怪的地方。如果条目中的条目很简单.pth
文件只是目录位置。他们只会被附加到sys.path
逐行。然而easy_install.pth
有一些 python 代码会导致列出的条目easy_install.pth
添加软件包列表开始 of the sys.path
list.
此后的目录条目pywin32.pth
, setuptools.pth
添加在末尾sys.path
按预期列出。
注意:虽然上述讨论适用于 Windows,但即使在 Mac 等上也是类似的。在 Mac 上,它只是添加了不同的操作系统默认值,例如darwin
等在它开始查看之前site-packages
目录.pth
files.
对于您的情况,您可以首先启动 python shell 并检查位置sys.prefix
and sys.exec_prefix
指向然后从那里向下钻取。
注 2:如果您使用 Aptana/PyDev 等 IDE,它将添加更多自己的配置。所以你需要对此保持警惕。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)