2008-10-07 68 views
5

我已经使用setuptools生成了一个python蛋,并希望在运行时访问它的元数据。我目前正在这样做:访问python蛋自己的元数据

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

但这可能会工作不正确,如果我有多个版本的相同的鸡蛋安装。如果我已经安装了egg和development版本,那么从开发版本运行这个代码会得到已安装egg的版本。

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

回答

4

我有点新的Python的为好,但是从我的理解:

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

0

没错。所以你应该只能得到当前可用鸡蛋(单数)图书馆的信息。如果您的site-packages文件夹中有同一个库的多个鸡蛋,请检查easy-install.pth在同一文件夹中以查看哪个鸡蛋真的被使用:-)

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