De nombreux modules Python tiers possèdent un attribut qui contient les informations de version du module (généralement module.VERSION
ou module.__version__
), mais pas tous.Vérification d'une version de module Python à l'exécution
Des exemples particuliers de tels modules sont libxslt et libxml2.
Je dois vérifier que la version correcte de ces modules est utilisée lors de l'exécution. Y a-t-il un moyen de faire cela?
Une solution potentielle serait de lire dans la source lors de l'exécution, de la hacher, puis de la comparer au hachage de la version connue, mais c'est méchant.
Existe-t-il de meilleures solutions?
Notez également que le nom du package doit être celui de l'entrée PyPI. Donc, quelque chose comme "pkg_resources.get_distribution ('MySQLdb'). Version" ne fonctionnera pas "pkg_resources.get_distribution ('mysql-python'). Version" will. – Rahul
Si vous utilisez un nom de fichier absolu, 'pkg_resources' pourrait choisir une version différente de celle que vous utilisez actuellement car elle a une priorité plus élevée sur votre' PYTHONPATH' ou similaire. – tripleee
Si quelqu'un veut savoir comment créer l'attribut '__version__': http://stackoverflow.com/q/17583443/562769 –