Je suis en train de marcher un répertoire qui contient les oeufs ajouter les oeufs à la Pythonpath (sys.chemin d'accès). Si il y a deux versions de la même chose .l'oeuf dans le répertoire, je tiens à ajouter que le dernier.
J'ai créer une expression régulière simple (r"^(?P<eggName>\w+)-(?P<eggVersion>[\d\.]+)-.+\.egg$
) pour extraire le nom et la version de l'oeuf. L'idée est de garder l'information dans un dictionnaire et une fois que l'ensemble du répertoire a été parcouru, en ajoutant seulement la version la plus récente des œufs. Garder la trace de l'œuf fichiers/répertoires à ajouter n'est pas la question. Le problème est de comparer le numéro de version, qui est une chaîne de caractères comme... "2.3.1".
Depuis que je suis de la comparaison de chaînes, ce qui se passe:
>>> "2.3.1" > "10.1.1"
True
Mais la version 2 n'est pas une version supérieure à la version 10.
Je sais que je pourrais toujours commencer à faire certaines fractionnement, l'analyse, la conversion en int, yadda, yadda, bla... Et j'allais finir par trouver une solution de contournement, mais... il y a à être plus propre, plus efficace (et élégant) de la comparaison. Est-il? C'est Python, pas de Java... il y a un moyen élégant de faire ce genre de chose...?
Aussi, le but de tout cela est l'ajout de la droite oeufs au Pythonpath alors peut-être que je pourrais aller avec une approche totalement différente en utilisant une sorte de... d'œufs gestionnaire de paquet? Ce genre de réponses sont également les bienvenus.
Je vous remercie à l'avance.