python système après installation plugin
python système après installation plugin
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.
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.
Re: python système après installation plugin
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
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
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Re: python système après installation plugin
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.
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
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
Re: python système après installation plugin
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...
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...
Re: python système après installation plugin
absolument, la possibilité d'utiliser venv serait top.
Cependant, Domoticz ne permet pas cette fonctionnalité.
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
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
Re: python système après installation plugin
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:
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!
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
Ç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.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe.
Re: python système après installation plugin
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
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
Re: python système après installation plugin
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.
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.