有人能解释一下egg信息目录是如何绑定到它们各自的模块的吗?例如,我有以下内容:
/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信息目录绑定到模块目录?
假设我在正确的轨道上,为了举例。。。如果我想让我的现有包对setuptools可见,我可以将module目录和egg info目录符号链接到site packages目录吗?我本可以自己尝试一下,但我不确定如何测试setuptools是否可以看到这个包。如果你还可以告诉我如何测试这个,就可以获得额外的积分:)
我试图理解这一切的主要原因是,我想将我的一些模块符号链接到站点包中,这样我就可以对它们进行更改,并使使用它们的脚本可以看到这些更改,而不必在每次更改后从PyPI重新安装egg。
只有在使用外部管理的单一版本安装egg时才能创建.egg信息目录。”通常,“安装egg将创建一个目录(或zip文件),其中包含代码和元数据。
pkg_resources(读取元数据的库)有一个函数
require
,该函数可用于请求特定版本的包。对于“旧式”的常规导入,easy_install会破解一个.pth文件,将egg目录放到sys.path上。对于——外部管理的单一版本,这种黑客攻击是不必要的,因为将只安装单一版本(通过系统的打包基础设施,例如rpm或dpkg)。对于使用require
(或任何其他pkg_资源绑定机制)的应用程序,仍然包含egg信息。如果要通过硬链接安装软件包,我建议使用“setup.py develop”。这是一个来自setuptools的命令,它实际上并不安装egg,但可以在整个站点范围内使用。为此,它创建一个egg链接文件,以便pkg_资源能够找到它,并操作一个.pth文件,以便常规导入能够找到它。
相关问题 更多 >
编程相关推荐