什么是Python的“附加”和“站点包”目录之间的区别?(What is the differenc

2019-07-19 22:02发布

我感到困惑的方式Python的,在OS X上,采用包在“附加”和“站点包”。 特别是,我感到困惑的是我在这些目录中看到,并在目录中是如何重复的软件包相互影响,并在我应该把我安装软件包。

我曾以为,“附加” 1是对于那些不Python核心的部分包的位置,但仍然是一个给定的平台分发。 例如,OS X,是分布与PyObjCtwisted ,和numpy ,等等; 这些在“附加”找到。 我也认为“站点包” 2就是我后来去安装,并且目录是一个“鲜”机上的空或不存在包。 此外,我会假设安装新的软件包将留在“附加”单独的版本,并把我“站点包”,在那里他们将“面具”那些“附加”做任何更新。 (因此,例如,默认安装可以简单地通过删除“站点包”恢复。)

是什么让我困惑的是,我的“附加”目录的内容越来越少。 与新鲜的OS X中的内容进行比较(10.8.2)安装后,“附加”我目前的配置缺失

altgraph
altgraph-0.9-py2.7.egg-info
dateutil
macholib
macholib-1.4.2-py2.7.egg-info
modulegraph
modulegraph-0.9.1-py2.7.egg-info
numpy #though numpy-1.6.1-py2.7.egg-info is there
pkg_resources.py  # though .pyc is there
py2app
py2app-0.6.3-py2.7.egg-info
setuptools  # though setuptools-0.6c12dev_r88846-py2.7.egg-info is there
site.py  # though .pyc and .pyo are there
xattr
xattr-0.6.2-py2.7.egg-info
zope
zope.interface-3.5.1-py2.7.egg-info

并没有在新发现的两个附加文件安装

pkg_resources.py.OLD.1356069438.31
setuptools-0.6c12dev_r88846-py2.7.egg-info.OLD.1356069438.31
setuptools.OLD.1356069438.31

据我回忆,这些都是我自己更新的所有包,所有的版本都出现在“站点包”。

是“附加”目录的内容应该以这种方式“萎缩”? 是否更新包是在“附加”“动”它“站点包”,还是应该“附加”版本被单独留在家中,只是“蒙面”的那些“站点包”?


1: /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
2: /Library/Python/2.7/site-packages/

Answer 1:

OSX(和Linux)似乎并不喜欢蟒蛇分布的默认安装目录中安装额外的Python包。

PIP可以搜索(如Python本身一样)对于安装的模块,如果你想升级将取消安装旧版本,然后安装在您要求的地方新版本,默认为站点包。 如果你仔细看一下PIP的输出会告诉你它删除,它安装了什么。

所以,只有当你告诉PIP安装的附加目录,或将不得不修补到默认的OSX这样做的一个点子,那会工作。

这其实是一件好事,旧版本将被删除,导入会根据你的搜索路径上的模块(sys.path)里的,因为否则的版本,这是一种错误倾向。

无论是应该缩小可以说,但它是你与PIP做你的升级方式的正常结果。



文章来源: What is the difference between Python's 'Extras' and 'site-packages' directories?