Jusqu'à présent, j'utilisais conda comme environnement virtuel et gestionnaire de dépendances. Cependant, certaines choses ne fonctionnent pas comme prévu lorsque je transfère mon fichier environment.yml de ma machine de développement au serveur de production. Maintenant, je voudrais examiner des alternatives. Poetry semble intéressant, surtout parce que
poetry maintient également un fichier de verrouillage, et il présente un avantage par rapport à pipenv car il garde une trace des paquets qui sont des sous-dépendances. (https://realpython.com/effective-python-environment/#poetry)
ce qui pourrait améliorer considérablement la stabilité. Cependant, je travaille sur des projets scientifiques (matrices, science des données, apprentissage automatique), je ai donc besoin de l'ensemble de logiciels scipy en pratique (par exemple, numpy, pandas, scitkit-learn).
Python est devenu trop lent pour certains travaux de calcul pur, donc numpy et scipy sont nés. [...] Ils sont écrits en C et simplement enveloppés en tant que bibliothèque python.
Compiler de telles bibliothèques apporte un ensemble de défis puisqu'elles doivent (plus ou moins) être compilées sur votre machine pour obtenir des performances maximales et un bon lien avec des bibliothèques comme glibc.
Conda a été introduit comme une solution tout-en-un pour gérer les environnements python de la communauté scientifique.
[...] Au lieu d'utiliser un processus fragile de compilation de bibliothèques sur votre machine, les bibliothèques sont précompilées et simplement téléchargées lorsque vous les demandez. Malheureusement, la solution est accompagnée d'un inconvénient - conda n'utilise pas PyPI, l'index le plus populaire des paquets python.
(https://modelpredict.com/python-dependency-management-tools#fnref:conda-compiling-challenges)
À ma connaissance, cela ne rend même pas justice à Conda, car il fait beaucoup d'optimisation pour tirer le meilleur parti de mon CPU/GPU/architecture pour numpy. (https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/#Myth-#6:-Now-that-pip-uses-wheels,-conda-is-no-longer-necessary)
https://numpy.org/install/ lui-même recommande d'utiliser conda, mais dit aussi qu'on peut installer via pip (et poetry utilise pypi)
Pour les utilisateurs qui connaissent, par préférence personnelle ou en lisant sur les principales différences entre conda et pip ci-dessous, ils préfèrent une solution basée sur pip/PyPI, nous recommandons :
[...] Utilisez Poetry comme l'outil le mieux maintenu qui fournit un solveur de dépendances et des capacités de gestion de l'environnement de manière similaire à conda.
J'aimerais obtenir la stabilité de la configuration de poetry et la rapidité de la configuration de conda.
Comment poetry gère-t-il les dépendances binaires ? Le fait-il également, comme conda, en tenant compte de mon matériel ?
Si poetry ne répond pas à cet égard, puis-je le combiner avec conda ?