使用pkg_resources获取python模块完整版本

时间:2012-02-24 16:28:10

标签: python distutils python-module

我使用distutils创建了一个python包,它在setup.py文件中有:

setup(name = "foo",
      version = "0.2.1",
      ...)

当我这样做时:

import pkg_resources
pkg_resources.get_distribution("foo").version

我得到0.2而不是0.2.1。这是为什么?我怎样才能获得完整版?谢谢。

2 个答案:

答案 0 :(得分:2)

pkg_resources在Python安装中查找已安装的发行版。在更改版本后,您是否重新运行了python setup.py installpython setup.py develop

尝试检查get_distribution返回的对象,查找显示该位置在文件系统中的位置的属性;也许foo没有安装在您认为的位置,而是找到旧版本。

答案 1 :(得分:0)

对我来说这看起来像个错误。如果软件包安装了distutils而不是setuptools,那么pkg_resources.get_distribution()将返回安装的最旧版本。

解决问题的最佳方法是替换:

from distutils.core import setup

使用:

from setuptools import setup