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

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

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

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

有帮助吗?

解决方案

我对Python也有些新意,但据我所知:

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

其他提示

完全。因此,您应该只能获取图书馆当前可用鸡蛋(单数)的信息。如果您的site-packages文件夹中有相同库的多个鸡蛋,请检查同一文件夹中的easy-install.pth以查看实际使用的鸡蛋: - )

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top