http://docs.python.org/library/sys.html的蟒蛇说sys.path
是..。
从环境变量PYTHONPATH初始化,加上依赖安装的默认设置。
我在我的sys.path
中找到了一个导致问题的路径项,并且在跟踪它时遇到了很多困难。我在谷歌上所能看到的就是解释如何向PYTHONPATH
变量添加条目的人。
我的问题是:是否有任何工具可以帮助跟踪为什么某个特定项目在您的sys.path
上?如何才能找到更多关于“安装相关的默认设置”的信息?
到目前为止,我已经找到了一个部分解决方案,就是对python本身使用strace
并查找.pth
文件。我还找到了一个sys.path_importer_cache
,它可能适用也可能不适用。
发布于 2011-03-31 06:28:59
最近,我在sys.path
上遇到了一些问题,下面是我如何尝试找出这些条目的来源。我能够追踪所有的条目以及它们的来源。希望这也能帮到你。
C:\WINNT\system32\python27.zip
(PEP273中的更多细节)。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
。http://svn.python.org/projects/python/trunk/PC/getpathp.c源代码注释中的更多细节(在我找到上面的链接之前,这些条目对我来说是最难理解的)。site
包文档(链接)中所解释的,sys.path
是由sys.prefix
和sys.exec_prefix
构建的。在我的电脑上,它们都指向C:\Python27
。默认情况下,它以任何方式搜索lib/site-packages
。现在,条目C:\Python27; C:\Python27\lib\site-packages
被附加到上面的列表中。.pth
文件。我的网站里有easy_install.pth
,pywin32.pth
和setuptools.pth
-包。这就是事情开始变得奇怪的地方。如果.pth
文件中的条目只是目录位置,那就很简单了。它们将被逐行附加到sys.path
。但是,easy_install.pth
有一些python代码,这会导致easy_install.pth
中列出的条目在sys.path
列表的开头添加包列表。pywin32.pth
中的目录条目将按预期的方式添加到sys.path
列表的末尾。注意:虽然上面的讨论涉及到Windows,但即使是在Mac等上也是类似的。在Mac上,它只是在开始查看site-packages
目录中的.pth
文件之前添加了不同的操作系统默认值,比如.pth
等等。
在您的示例中,您可以首先启动python,检查sys.prefix
和sys.exec_prefix
指向的位置,然后从那里钻取。
注2:如果您使用的是一个IDE,比如Aptana/PyDev,它会添加更多的配置。所以你得小心点。
https://stackoverflow.com/questions/5500736
复制相似问题