La question serait plutôt qu’est-ce qui n’a pas été installé avec pip install ? As-tu des dépendances que tu installes autrement ? Pourquoi ?
Bonjour @entwanne , je ne vois pas ce que j’aurai pu installer autrement…Est-ce que finalement quand j’ai voulu utilisé numpy je n’avais pas besoin de l’installer puisque j’avais déjà installé pandas (et idem pour requests vis-à-vis de requests-html). Si c’est bien cela je trouve tout cohérent et cela répond à ma question.
Oui c’est bien cela, pandas dépend de numpy et requests-html dépend de requests, tout est correctement installé par/avec pip install.
Bonjour @mapommBL
Exact. Dans l’écosystème “Javascript / npm” que tu as peut-être en tête, tu aurais besoin d’installer numpy deux fois, une pour Pandas et une pour toi. Dans l’écosystème Python / pip tu n’installes numpy qu’une fois.
Pour savoir ce qui est installé :
pip list
Je vois que tu utiises requirements.in c’est OK pour moi, n’oublie pas d’utiliser pip-compile du paquet pip-tools pour générer un requirements.txt.
Une question que tu sembles te poser est « Si j’ai besoin d’importer numpy et pandas dans mon projet, dois-je lister les deux dans le requirements.in (sachant que numpy viendra tout seul en tant que dépendance de Pandas) ? » ma réponse est oui. Oui car comme ça si un jour tu as besoin d’une version particulière de numpy pour obtenir une fonctionnalité spécifique tu peux préciser numpy > 2.4 dans ton requirements.in.
Donc : tout ce dont tu as besoin va dans le requirements.in, et pip-compile fait le sale boulot de résoudre l’arbre des dépendances nécessaires pour satisfaire ton requirements.in. « résoudre » c’est « le requirements.in demande numpy > 2.4 et pandas, il faut trouver une version de numpy et de pandas à jour satisfaisant ces contraintes » donc pas de doublons de numpy dans requirements.txt, juste un numpy avec la bonne version qui satisfait tout le monde, c’est propre.
J’arrive un peu après la bataille mais, je me demande si dans tes scripts tu utilises pas les librairies de l’OS. Ce qui est ok si c’est toi qui utilise et mantien les script.
Bonjour @arm, j’avoue ne pas comprendre tout à fait ta question, mais mes scripts ne sont jamais diffusés, ils ne servent qu’à moi pour des taches perso. Je ne savais pas réellement comment faire pour avoir des modules à jour et je ne connaissais pas la dépendance entre modules quand j’ai posé ma question. La situation me semble plus claire maintenant
Ma question est plutôt dans le sens que tu en a pas besoin d’environment virtuel si tu utilises les librairies fournies par l’OS. Pour donner un exemple, quand ton script python a import psycopg tu peux juste faire un sudo apt install python3-psycopg dans Debian.
Si ce sont des scripts en interne et que tu documentes quels librairies (et que ces librairies sont disponibles dans ton OS, donc la plupart de librairies très utilisés), je trouve cela plus simple (et plus simple à mettre à jour aussi). Mais je suis plutôt adminsys que dev, donc c’est peut être pour ça ^^