Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 订单是否由'报告;系统路径';搜索包的顺序?_Python_Path_Package - Fatal编程技术网

Python 订单是否由'报告;系统路径';搜索包的顺序?

Python 订单是否由'报告;系统路径';搜索包的顺序?,python,path,package,Python,Path,Package,Pythonsys.path中条目出现的顺序是否与包的查找顺序相对应?比如我有 >>> from pprint import pprint >>> pprint(sys.path) ['', '/Library/Python/2.7/site-packages/ipython-0.14.dev-py2.7.egg', '/Library/Python/2.7/site-packages/matplotlib-1.3.x-py2.7-macosx-

Python
sys.path
中条目出现的顺序是否与包的查找顺序相对应?比如我有

>>> from pprint import pprint     
>>> pprint(sys.path)
['',
 '/Library/Python/2.7/site-packages/ipython-0.14.dev-py2.7.egg',
 '/Library/Python/2.7/site-packages/matplotlib-1.3.x-py2.7-macosx-10.8-intel.egg',
 '/Library/Python/2.7/site-packages/numpy-1.8.0.dev_3abd869_20121222-py2.7-macosx-10.8-intel.egg',
 '/Library/Python/2.7/site-packages/pymc-2.2-py2.7-macosx-10.8-intel.egg',
 '/Library/Python/2.7/site-packages/scikit_learn-0.13_git-py2.7-macosx-10.8-intel.egg',
 '/Library/Python/2.7/site-packages/scipy-0.12.0.dev_d631749_20121222-py2.7-macosx-10.8-intel.egg',
 '/Library/Python/2.7/site-packages/statsmodels-0.5.0-py2.7-macosx-10.8-intel.egg',
 '/Library/Python/2.7/site-packages/readline-6.2.4.1-py2.7-macosx-10.7-intel.egg',
 '/Library/Python/2.7/site-packages/nose-1.2.1-py2.7.egg',
 '/Library/Python/2.7/site-packages/six-1.2.0-py2.7.egg',
 '/Library/Python/2.7/site-packages/tornado-2.4.1-py2.7.egg',
 '/Library/Python/2.7/site-packages/pyzmq-2.2.0.1-py2.7-macosx-10.8-intel.egg',
 '/Library/Python/2.7/site-packages/patsy-0.1.0-py2.7.egg',
 '/Library/Python/2.7/site-packages/pip-1.2.1-py2.7.egg',
 '/Library/Python/2.7/site-packages/xattr-0.6.4-py2.7-macosx-10.8-intel.egg',
 '/Library/Python/2.7/site-packages/distribute-0.6.28-py2.7.egg',
 '/Library/Python/2.7/site-packages/astropy-0.3.dev2837-py2.7-macosx-10.8-intel.egg',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
 '/Library/Python/2.7/site-packages']
所以,总的来说,我有

['',
 '/Library/Python/2.7/site-packages/PKG_WITH_EGG.egg',
 ...
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
 ...
 '/Library/Python/2.7/site-packages']

这是否意味着,如果我安装的软件包(在“站点软件包”中)碰巧有一个
.egg
,它将取代可能在“Extras”中的同一软件包的一个版本,但那些(在“站点软件包”中)没有
.egg
的软件包将被“Extras”中的任何版本取代,模块通常是按这个顺序搜索的,但子模块是在基本模块树中搜索的。@Keith:那么,如果我有一个模块在“Extras”和“site packages”中,那么“site packages”版本只有在它恰好是鸡蛋的形式时才会被使用?(如果是的话,我想这意味着你是。)不是鸡蛋、包裹或模块。鸡蛋是在sys.path中搜索模块的容器(子目录或zip文件)。site packages是搜索模块或包的目录。包是一个目录,其中有一个
\uuuu init\uuuu.py
文件。@Keith:我不确定我是否明白。如果我有,在“Extras”中说
somepkg YY
,并且(1)
somepkg
(或者
somepkg XX.egg info
)在“site packages”中是否加载了版本“YY”;(2) 如果我在“site packages”(随后似乎被添加到“sys.path”)中有
somepkg XX.egg
,那么版本“XX”是否已加载?Python解释器不会搜索egg信息,Python也不会搜索.egg目录,除非它位于sys.path中。你可以用我的工具告诉你它找到了哪一个。