Python包和egg信息目录

2024-06-13 16:25:38 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能解释一下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。


Tags: 模块info目录信息链接egglibpackages
1条回答
网友
1楼 · 发布于 2024-06-13 16:25:38

只有在使用外部管理的单一版本安装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文件,以便常规导入能够找到它。

相关问题 更多 >