Vous n'êtes pas identifié(e).
Hors ligne
Comment gérer en (con)science ce qu'on "pêche" avec pip ?
En lisant le code source
La liberté est gratuite et accessible à tous. Sinon ça n'en est pas.
En ligne
En lisant le code source
Effectivement.... mais ce n'est pas (pour moi) pour maintenant
Hors ligne
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
En ligne
... je tente de me poser les bonnes questions dès le départ, plutôt que devoir corriger de mauvaises habitudes face aux difficultés.
Dernière modification par dezix (06-10-2024 13:39:56)
Hors ligne
Hors ligne
Il faut créer un environnement virtuel pour Python.
Activer cet environnement virtuel.
Utiliser pip à l'intérieur ce cet environnement virtuel pour installer les modules externes.
Un environnement virtuel n'est qu'un répertoire quelque part créé de la sorte (1 seule fois pour 1 projet) :
Activer l'environnement virtuel :
Utiliser pip pour installer des modules externes au système ou
Lancer les scripts ayant besoin des modules externes au système pour fonctionner et installés dans cet environnement virtuel.
Désactiver l'environnement virtuel :
Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
Hors ligne
Comment gérer en (con)science ce qu'on "pêche" avec pip ?
Juste pas. Jamais. Je me doute que beaucoup ne seront pas d’accord, mais pour ma part je refuse de multiplier les gestionnaires de paquets sur mon système.
Quand je dois bosser avec du code Python je me retrouve face à un de ces trois cas, et dans chacun j’ai une approche différente :
Si des dépendances du code Python sont fournies par Debian dans les versions attendues, j‘installe ces dépendances depuis les dépôts Debian ;
Si des dépendances du code Python sont fournies par Debian dans d’autres versions que celle attendues, j‘installe ces dépendances depuis les dépôts Debian et je modifie le code Python au besoin pour le faire fonctionner avec ces versions ;
Si des dépendances du code Python ne sont pas fournies par Debian, j’utilise la commande py2dsp (fournie par le paquet pypi2deb) pour générer des paquets .deb pour les dépendances manquantes et ce sont ces paquets que j’installe.
En ligne
Dernière modification par dezix (06-10-2024 15:26:03)
Hors ligne
j'imagine que le cas N°2 peut nécessiter (parfois) pas mal de travail et de compétences suivant la complexité...
Ça dépend pas mal du sérieux avec lequel sont développés le programme Python et ses dépendances.
Si les devs ont fait leur boulot correctement, les incompatibilités entre les versions sont documentées et donc c’est relativement facile.
En ligne
Dernière modification par dezix (06-10-2024 16:15:26)
Hors ligne
Dans l'autre sens => pour la distribution du programme cette posture complique un peu la donne,
nécessité de proposer un dépôt dédié pour la récupération des paquets .deb hors distro pour le cas N°3
Pour moi l’approche recommandée serait plutôt d’empaqueter pour Debian le programme lui-même et les dépendances qui manquent aux dépôts. Pas via un dépôt tiers, mais directement au sein de Debian.
Alors qu'en restant dans l'écosystème "pip" le programme serait simplement distribué empaqueté avec un fichier de dépendances
et installable avec simplement : pip install mon_programme
Installable plus facilement par ceux qui utilisent pip… mais pas installable par ceux qui utilisent apt.
À voir donc si c’est un compromis qui te convient.
En ligne
Pas via un dépôt tiers, mais directement au sein de Debian.
cela sous-entend de remplir des conditions qui seront rarement réunies pour des petits programmes de bricoleur du dimanche.
Mais ta stratégie n'en demeure pas moins intéressante en local/interne pour l'utilisation en tant que "consommateur" sous debian,
du reste je te suis reconnaissant d'avoir présenté la question sous cet angle nouveau pour moi.
À voir donc si c’est un compromis qui te convient.
Je n'en suis clairement pas là... je me cultive simplement
Hors ligne
Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
Pourquoi, je reste sur un "venv" :
Parce que dans mon cas d'étude sur un automate cellulaire réputé, je ne vois pas pourquoi des modules spécifiques à cet automate seraient utiles pour l'ensemble du système.
Sans passer par un « venv » tu pourrais très bien installer ton paquet python uniquement dans ton espace utilisateur avec la commande :
Tousse antique Ovide !
Hors ligne
5.2.2. Interpréteurs Python marqués comme gérés en externe
Les paquets de l'interpréteur python3 fournis par Debian (python3.11 et pypy3) sont désormais marqués comme ayant une gestion externe, suivant la PEP-668. La version de python3-pip fournie par Debian suit cela et refusera d'installer manuellement des paquets sur les interpréteurs Python de Debian, à moins que l'option --break-system-packages ne soit spécifiée.
Si vous avez besoin d'installer une application Python (ou une version) qui n'est pas empaquetée par Debian, nous vous recommandons de l'installer avec pipx (présent dans le paquet Debian pipx). pipx configurera un environnement isolé des autres application et des modules Python du système, et installe l'application et ses dépendances à l'intérieur.
Si vous avez besoin d'installer un module de bibliothèque (ou une version) qui n'est pas empaqueté dans Debian, nous vous recommandons de l'installer dans un environnement virtuel quand c'est possible. Vous pouvez créer des environnements virtuels avec le module stdlib Python venv (du paquet Debian python3-venv) ou avec l'outil Python tierce virtualenv (du paquet Debian virtualenv). Par exemple, plutôt que d'exécuter pip install --user toto, exécutez mkdir -p ~/.venvs && python3 -m venv ~/.venvs/foo && ~/.venvs/toto/bin/python -m pip install toto pour l'installer dans un environnement virtuel dédié.
Consultez /usr/share/doc/python3.11/README.venv pour plus de détails.
https://www.debian.org/releases/stable/ … n3-pep-668
Dernière modification par Philou92 (06-10-2024 22:49:23)
Tousse antique Ovide !
Hors ligne
cela sous-entend de remplir des conditions qui seront rarement réunies pour des petits programmes de bricoleur du dimanche.
La seule et unique condition pour ça est qu’un mainteneur accepte de s’en occuper. Ce mainteneur pouvant être toi
Si on regarde ici par exemple, on peut voir que mon dernier paquet introduit chez Debian a en tout et pour tout un seul et unique utilisateur (moi-même) : https://qa.debian.org/popcon.php?packag … -adventure
Bon, je triche un peu vu qu’il est arrivé dans les dépôts aujourd’hui-même. Mais si on regarde celui-ci que je maintiens aussi et qui est dans les dépôts depuis 2018, il n’est installé que sur 0,03% des machines faisant tourner Debian : https://qa.debian.org/popcon.php?package=play.it
En bref, pas besoin qu’un logiciel soit utilisé par des dizaines de milliers de personnes pour qu’il soit intégré à Debian.
En ligne
Acheter plus à jeter plus!
Mes amusements avec python kivy glsl: https://www.youtube.com/@MPython_Alaplancha
Hors ligne