2012-02-24 7 views
1

J'ai fait un paquet python en utilisant distutils que dans son fichier setup.py, a:obtenir la version complète du module python avec pkg_resources

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

quand je fais:

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

Je reçois 0.2 et non 0.2.1. Pourquoi donc? comment puis-je obtenir la version complète? Je vous remercie.

+0

Pouvez-vous poster plus de code? Par exemple. Y a-t-il un endroit où vous avez spécifié '0.2'? J'ai vérifié les docs de paquets de python (http://packages.python.org/distribute/pkg_resources.html#distribution-attributes) et votre code me semble bien. – Paragon

Répondre

2

pkg_resources cherche des distributions installées dans votre installation Python. Avez-vous re-couru python setup.py install ou python setup.py develop après avoir changé la version?

Essayez inspecté l'objet retourné par get_distribution pour un attribut indiquant où l'emplacement est situé sur le système de fichiers; peut-être que foo n'est pas installé là où vous le pensez, et une version plus ancienne est trouvée à la place.

0

Il ressemble à un bug pour moi. Si le paquet a été installé avec distutils au lieu de setuptools, puis retourne pkg_resources.get_distribution() la plus ancienne version installée.

La meilleure façon de le fixer est de remplacer:

from distutils.core import setup 

avec:

from setuptools import setup 
Questions connexes