订购Python包路径的设计原因是什么?

时间:2013-10-23 18:58:55

标签: python path pip packages

understand,在OS X上,搜索包路径的默认顺序是(以pprint(sys.path)报告的形式),例如:

['',
 '/Library/Python/X.X/site-packages/PKGS_WITH_EGGS.egg',
 ...
 '/System/Library/Frameworks/Python.framework/Versions/X.X/lib/pythonX.X/SOME_PLATFORM_PKGS,
 ...
 '/System/Library/Frameworks/Python.framework/Versions/X.X/Extras/lib/python',
  ...
 '/System/Library/Frameworks/Python.framework/Versions/X.X/lib/pythonX.X/OTHER_PLATFORM_PKGS,
 ...
'/System/Library/Frameworks/Python.framework/Versions/X.X/Extras/lib/python/PyObjC',
'/Library/Python/X.X/site-packages']

例如,在我的系统(OS 10.9)上,我有:

['',
'/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']

其他系统似乎采用了类似的结构。

这种排序的逻辑是什么,特别是为什么首先寻找“蛋”,为什么最后使用site-packages

0 个答案:

没有答案