5. Méthode Conda
Les fonctions pypkgs_pkg_conda_simple et pypkgs_pkg_conda_json sont capables d’appeler conda à la place de mamba, car dans une installation mamba-forge, conda reste toujours utilisable. En principe les résultats devraient être identiques, mais les temps d’exécution sont nettement plus longs.
Dans le cas de PIL si mamba-json refusait le scoring, conda (simple ou json) l’améliore avec une information de version et de build.
importlib: package 'PIL' resolved with score=160conda: package 'PIL' resolved with score=164conda-json: package 'PIL' resolved with score=164 |
Dans le cas de pillow, le score passe à 92 mais c’est juste lié au fait que le bit de conda est après celui de mamba, il n’y a pas d’amélioration du dictionnaire.
importlib: package 'pillow' resolved with score=64pip: package 'pillow' resolved with score=80mamba-json: package 'pillow' resolved with score=88conda: package 'pillow' resolved with score=92conda-json: package 'pillow' resolved with score=92 |
Dans le cas de Pillow, nous avons le même cas de figure que précédemment.
Dans le cas de numpy le dictionnaire devient quasi complet avec un score de 252.
Dans le cas de toto, le score passe à 4 avec conda, mais conda-json refuse le score.
Au final, j’utilise essentiellement la méthode mamba-json qui est le meilleur compromis fiabilité et rapidité.
Les scores qui fluctuent ne sont pas gênants, car il s’agit de primitives. Dans la réalité, nous allons utiliser des macros (pour chaque paquetage à tester) qui incluent un score de référence. Selon cette valeur, la macro renverra un résultat plus simple à interpréter, vrai ou faux, concernant l’installation du paquetage. En plus, ces macros incluent des recherches sur fichiers (certains paquetages nécessitent des bibliothèques externes à Python) et des tests sur les variables d’environnement (nécessitées par certains paquetages).