有人能解释一下egg-info目录是如何绑定到各自的模块的吗?例如,我有以下内容:
/usr/local/lib/python2.5/site-packages/quodlibet/
/usr/local/lib/python2.5/site-packages/quodlibet-2.0.egg-info/我假设egg-info目录是为了使相应的模块对setuptools (easy_install)可见,对吗?如果是这样,setuptools如何将egg-info目录绑定到模块目录?
假设我在正确的轨道上,为了举例...如果我想让我现有的包对setuptools可见,我可以只将module目录和egg-info目录符号链接到site- package目录吗?我会自己试一下,但是我不确定如何测试这个包对setuptools是否可见。如果您还能告诉我如何测试它,请加分:)
我试图理解这一切的主要原因是因为我想将我的一些模块符号链接到站点包中,这样我就可以对它们进行更改,并使这些更改对使用它们的脚本可见,而不必在每次更改后从PyPI重新安装egg。
发布于 2008-11-02 06:40:26
只有在使用--single-version-externally managed安装egg时,才会创建.egg-info目录。“通常”,安装一个egg将创建一个单独的目录(或zip文件),其中包含代码和元数据。
pkg_resources (读取元数据的库)有一个函数require,可用于请求包的特定版本。对于“老式”的常规导入,easy_install会破解一个.pth文件,将鸡蛋目录放到sys.path上。对于-- single - version -externally managed,这种黑客攻击是不必要的,因为只会安装一个版本(通过系统的打包基础设施,例如rpm或dpkg)。对于使用require (或任何其他pkg_resources绑定机制)的应用程序,egg-info仍然包含在内。
如果你想通过硬链接的方式安装包,我推荐使用"setup.py develop“。这是来自setuptools的命令,它并不实际安装egg,但使其在站点范围内可用。为此,它创建了一个鸡蛋链接文件,以便pkg_resources可以找到它;它还操作一个.pth文件,以便常规导入可以找到它。
https://stackoverflow.com/questions/256417
复制相似问题