python système après installation plugin

Forum dédié au plugin ZigBeeForDomoticZ : installation, paramétrage, utilisation, interfaces ...
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

python système après installation plugin

Message par lost »

Hello,
Ayant eu hier a retoucher des services python perso liés a Domoticz pour la 1ère fois depuis install plugin je passe un coup de pylint en verification/linter comme a mon habitude (avec les langages interprétés il manque ce boulot du compilateur et j'ai parfois vu des pb seulement a la 1ère exécution d'une branche de code modifiée, parfois des semaines après)... et... insultes car plugin et dependances pip foutent la grouille vs libs python venant des dépôts, niveau droits seulement ici heureusement mais des incompatibilités plus subtiles pourraient exister et j'aimerais bien choisir a quoi se lie le plugin pour le séparer du reste.... sans tomber dans le lourdeur de conteneurs.
Je ne sais pas si qqun a déjà eu ce type de pb et trouvé une solution... j'évitais jusque jusque-là pip comme la peste en m'en tenant a des libs pyton exclusivement présentes dans les dépôts debian mais ici ce n'a hélas pas été possible.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: python système après installation plugin

Message par Keros »

Le plugin dispose d'un fichier requirements.txt à la racine de son dossier que la commande sudo python3 -m pip install -r requirements.txt --upgrade utilise pour gérer les paquets python nécessaires.

Tu dois pouvoir installer et configurer les lib python manuellement afin que les versions mini des lib soient satisfaites.
Mais si tu ne veux plus utiliser pip, il ne faudra plus passer par la mise à jour via le WebUI > la commande pip sera lancée.

L'utilisation de la commande pip a été faite pour simplifier les installations et les mises à jour des paquets python pour les utilisateurs. Tu peux ne pas l'utiliser, mais tu rentres dans un cas d'utilisation très particulier dans lequel il nous sera difficile de t'apporter du support.
Personnellement, je pense que Pipiche en fait énormément, si on pouvait éviter de lui en rajouter :?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
pipiche
Messages : 4677
Inscription : 04 avr. 2018, 16:16
Contact :

Re: python système après installation plugin

Message par pipiche »

peut-etre faut-il voir sur la configuration de pylint.
Pour ma part j'utilise flake8 et ca detecte pas mal de chose.
Il est de plus automatiquement executé lors d'un commit vers github

On utilise également Codefactor qui donne une note
https://www.codefactor.io/repository/gi ... ew/stable7

Si tu trouves des choses améliorant le code, n'hésites pas à faire des PR.
Zigbee for Domoticz - Clef zzh-p (electrolama) 45 devices.

Si vous appréciez ce que je fais, vous pouvez contribuer par un don Paypal , ce qui me permettra notamment l'achat d’équipements et de les tester/valider pour le plugin.
Wiki ici
chat sur Keybase.io
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: python système après installation plugin

Message par lost »

Hello,

Pour répondre aux deux...

Keros: Pas certain qu'il n'y ait que la liste des requirements du plugin en cause ici, car au delà il y a zigpy etc.
NIveau plugin il n'y en a pas tant: https://github.com/zigbeefordomoticz/Do ... ements.txt
Mais c'est ce que cela tire en cascade derrière. Sans parler que pip ne m'avait pas semblé tenir compte de ce qui est déjà là via les dépôts: Le pyserial que j'utilise par ailleurs sur des trucs perso et qui ne bouge plus guère (une liaison série, c'est pas vraiment neuf), je me rappelle l'avoir vu passer et m'être dit "quel est l'âne qui a fait ce pip qui se pense seul au monde" (pip semble plus avoir été fait pour des windowsiens ou il n'y a pas ce concept de dépôts assurant la cohérence d'une distribution Linux)!

Pipiche: J'ai peut-être pas été assez clair, mais c'est de passer pylint sur des scripts à moi sur lesquels j'ai fait des modifs qui pose désormais pb. Et j’avais une conf utilisateur, histoire de ne pas me faire emmerder sur des détails de nommageDeFonction que python voudrait que j'écrive en plus long nommage_de_fonction... ou autres fixettes de Guido/détails qu'on peut apprécier... ou pas!

Pas dit qu'avec un autre linter il n'y ait pas le même genre de problèmes. Ce qui m'inquiète, c'est que au delà de mes propres scripts Python est de plus en plus utilisé pour des outils systèmes qui peuvent se retrouver déstabilisés par ce que pip tire en doublons de ce qui est déjà là par ailleurs.

Bref, faudrait peut-être creuser du côté des venv mais j'ai des compétences assez limitées en Python (j'ai surtout fait du C et le plus souvent en bare métal pour du démarrage de processeur/boot-loader/firmware, ce qu'on appelle du logiciel de base et c'est pas vraiment comparable. Le zéro dépendance y a longtemps été la règle, pas même un ersatz de libc simplifiée: Le pendant "sa bite et son clavier" de "la bite et le couteau"...): Je ne l'ai même pas vraiment appris...
pipiche
Messages : 4677
Inscription : 04 avr. 2018, 16:16
Contact :

Re: python système après installation plugin

Message par pipiche »

absolument, la possibilité d'utiliser venv serait top.
Cependant, Domoticz ne permet pas cette fonctionnalité.
Zigbee for Domoticz - Clef zzh-p (electrolama) 45 devices.

Si vous appréciez ce que je fais, vous pouvez contribuer par un don Paypal , ce qui me permettra notamment l'achat d’équipements et de les tester/valider pour le plugin.
Wiki ici
chat sur Keybase.io
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: python système après installation plugin

Message par lost »

En creusant les messages d'erreur, il semble que les droits sur ces répertoires sous /usr/local/lib/python3.9/dist-packages/ posaient pb:

Code : Tout sélectionner

drwxr-x---  3 root root 4096 Feb 16 06:35 distro
drwxr-x---  2 root root 4096 Feb 16 06:35 distro-1.9.0.dist-info
drwxr-x---  4 root root 4096 Apr  3 12:42 z4d_certified_devices
drwxr-x---  2 root root 4096 Apr  3 12:42 z4d_certified_devices-4.249.dist-info
Un chmod a+rx dessus règle l'affaire. Maintenant, comment pylint se retrouve emmerdé par des trucs tirés après l'installation de z4d??? La liste d'erreur est longue comme le bras et j'ai pas tout déroulé.

Ça pourra peut-être servir à d'autres de regarder là si y'a pas des droits qui détonnent, mais en effet s'il y a un pb lié à domoticz à ce sujet côté plugins python/venv c'est potentiellement emmerdant car ce ne sera pas forcément toujours un avertissement sans frais ce méli-mélo pip/apt. Surtout que cela sort avec un truc qui n'a absolument rien à voir!
Dernière modification par Keros le 05 avr. 2024, 12:29, modifié 1 fois.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe.
pipiche
Messages : 4677
Inscription : 04 avr. 2018, 16:16
Contact :

Re: python système après installation plugin

Message par pipiche »

Zigbee for Domoticz - Clef zzh-p (electrolama) 45 devices.

Si vous appréciez ce que je fais, vous pouvez contribuer par un don Paypal , ce qui me permettra notamment l'achat d’équipements et de les tester/valider pour le plugin.
Wiki ici
chat sur Keybase.io
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: python système après installation plugin

Message par lost »

Hello,

Merci pour la vérification, qd une version compatible libssl3 de Domoticz en phase avec la dernière Debian sortira, je pense que je réinstallerais le plugin ainsi. En espérant que pip sache faire le ménage complet, préservant la possibilité de ne faire qu'une MAJ côté Linux après le ménage et non une réinstall totale.
Répondre