我使用setuptools生成了一个python egg,并希望在运行时访问它的元数据。我目前正在努力:
import pkg_resources
dist = pkg_resources.get_distribution("my_project")
print(dist.version)
但如果我安装了同一个鸡蛋的多个版本,这可能会错误地工作。如果我同时安装了egg和开发版本,那么从开发版本运行此代码将获取已安装的egg的版本。
那么,我如何获取 my egg的元数据而不是我系统上安装的一些随机匹配的egg?
答案 0 :(得分:4)
我对Python也有些新意,但据我所知:
虽然您可以安装多个版本的“相同”鸡蛋(具有相同名称),但在运行时(根据您的发现方法),其中只有一个版本可用于任何特定的代码段。因此,如果您的鸡蛋是调用此代码的鸡蛋,则必须已为此代码选择 <{em>版本的my_project
版本,并且您的访问权限将是您自己的版本。
答案 1 :(得分:0)
完全。因此,您应该只能获取图书馆当前可用鸡蛋(单数)的信息。如果您的site-packages文件夹中有相同库的多个鸡蛋,请检查同一文件夹中的easy-install.pth以查看实际使用的鸡蛋: - )
在网站上注意:这正是像zc.buildout这样的系统,它允许您定义在开发应用程序或提供Web应用程序时可供您使用的库的确切版本。例如,您可以将1.0版用于一个项目,将1.2用于另一个项目。