访问Python egg的元数据

6

我使用setuptools制作了一个Python egg,并希望在运行时访问它的元数据。 目前,我已经将其工作:

import pkg_resources
dist = pkg_resources.get_distribution("my_project")
print(dist.version)

但是,如果我安装了多个版本的同一个egg,则这种方法可能会出现错误。如果我同时安装了已安装的egg和开发版本,则从开发版本运行此代码将选取已安装的egg的版本。
那么,如何获取我的egg的元数据,而不是系统中随机匹配的egg的元数据呢?
2个回答

4

我对Python还比较陌生,但据我所知:

虽然你可以安装多个版本的“相同”的egg(名称相同),但在运行时只有其中一个版本会对任何特定的代码可用(根据你的发现方法)。因此,如果你的egg是调用此代码的那个,它必须已经被选为此代码的my_project版本,并且你的访问将是针对你自己的版本。


0

没错。因此,您只能获取库的当前可用egg(单数)的信息。如果您在site-packages文件夹中有多个相同库的eggs,请检查同一文件夹中的easy-install.pth以查看实际使用的egg是哪个 :-)

顺便说一句:这正是像zc.buildout这样的系统的重点,它允许您定义将提供给您的库的确切版本,例如在开发应用程序或提供Web应用程序时。因此,您可以为一个项目使用1.0版本,而为另一个项目使用1.2版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接