6

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

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

但如果我安装了同一个鸡蛋的多个版本,这可能会无法正常工作。如果我同时安装了 egg 和开发版本,那么从开发版本运行此代码将获取已安装 egg 的版本。

那么,我如何获取我的鸡蛋的元数据而不是我系统上安装的一些随机匹配的鸡蛋?

4

2 回答 2

4

我对 Python 也有些陌生,但据我了解:

尽管您可以安装多个版本的“相同”egg(具有相同的名称),但在运行时(基于您的发现方法)任何特定代码段只能使用其中一个版本。因此,如果您的 egg 是调用此代码的那个,那么它一定已经被选为此代码版本my_project,并且您的访问权限将是您自己的版本。

于 2008-10-07T10:56:40.420 回答
0

确切地。因此,您应该只能获取图书馆当前可用的鸡蛋(单数)的信息。如果您的站点包文件夹中有同一个库的多个鸡蛋,请检查同一文件夹中的 easy-install.pth 以查看真正使用了哪个鸡蛋:-)

在站点注释上:这正是 zc.buildout 等系统的重点,它允许您定义将提供给您的库的确切版本,例如在开发应用程序或提供 Web 应用程序时。例如,您可以将 1.0 版用于一个项目,将 1.2 版用于另一个项目。

于 2008-10-07T11:06:09.917 回答