from PIL import Image : operation non permise

Votre Apache se cache, votre Pi gémit, votre SoC fume ? La panne quoi ! C'est ici que vous trouverez sans doute une solution... Sinon du réconfort :)

Modérateurs : Francois, maxty01

Répondre
piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

from PIL import Image : operation non permise

Message par piper » sam. 8 janv. 2022 13:37

Ah python, saloperie de truc
Vous avez déjà eu ceci :
import blabla
no module named babla
Le message est clair, nous n'avez pas la bibliothèque blabla, en général un pip install blabla résoud le problème

Mais alors là après un

Code : Tout sélectionner

pip3 install Pillow
je fais ceci :

Code : Tout sélectionner

import PIL
Tout est OK

Je fais maintenant ceci :

Code : Tout sélectionner

from PIL import Image
Et j'obtiens :
Operation non permise
Ce message est complètement idiot car je ne demande aucune action au système qui pourrait-être réservée à certains utilisateurs.

Bref, après avoir chercher une bonne heure, car cette erreur est très peu documentée (sauf sur Mac, apparemment , là, c'est courant et résolu en installant python par brew mais ça ne répond pas au problème du raspberry).

J'ai fini par résoudre le problème par une désintallation de Pillow suivit d'une installation par :

Code : Tout sélectionner

pip3 install --no-binary :all: Pillow
Ceci pour ne pas télécharger le compilé mais seulement les sources

Même soucis avec psutil :

Code : Tout sélectionner

import psutil
provoquait un "Opération non permise" alors que le module était bien installé (pip3 install psutil terminé avec succès, confirmé par pip3 freeze | grep psutil)
Problème résolu de la même manière ; en forçant à ne prendre que le source

Grrrrrrrrrr 2h de perdue pour ces c....

Je pense que cela vient du fait que j'installe tout cela sur un vieux Pi 1B qui a bien 7 ans. Pourtant Raspbian est à jour dessus. Car sur un Pi zéro, comme sur un Pi3 : aucun soucis, l'installation par pip3 fonctionne très bien et donne le résultat attendu.
A moins que ce ne soit à force de jouer avec mon Pi1 et de tester des tas de choses dessus.

Bref, si vous avez aussi une erreur "Opération non permise" sur un import de module, ça vous donnera une piste
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: from PIL import Image : operation non permise

Message par Artemus24 » sam. 8 janv. 2022 16:48

Salut Piper.

Je n'aime pas le langage Python donc je ne l'utilise pas.
Piper a écrit :Je pense que cela vient du fait que j'installe tout cela sur un vieux Pi 1B qui a bien 7 ans. Pourtant Raspbian est à jour dessus.
Je ne pense pas que ta RPi 1B soit en cause.
Inversement, tu dis que ton Raspbian est à jour, je veux bien, mais qu'elle version ?
--> Wheezy, Jessie, Stretch, Buster ou Bullseye ?

Il faudrait voir si ta manipulation est compatible avec la version que tu utilises.

Cordialement.
Artemus24.
@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: from PIL import Image : operation non permise

Message par Bud Spencer » sam. 8 janv. 2022 18:30

Problème récurant avec python quand il y a plusieurs versions d'installées sur un meme système.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

Re: from PIL import Image : operation non permise

Message par piper » sam. 8 janv. 2022 18:38

Bonjour,

Je te rassure, je déteste python aussi non pas à cause de son langage mais de tous ces problèmes de compatibilités, de changements brutaux entre les versions 2.x et 3.x avec incompatibilités entre elles, et de cette saloperie d'indentation (4 espaces/tabulation) et des éditeurs , à moins d'installer une usine à gaz, il n'y a rien de mieux que geany ou notepad++

Bref, ma manipulation est compatible (pip3 force bien l'installation pour python3......et bien oui, j'ai les 2 versions, comme tous les Linux .... excepté Fedora qui a totalement franchi le pas vers Python 3.x et ça fait moins de problèmes)

Pourquoi pip3 et pas pip ? parce que sur mon raspberry, la version par défaut de python est python 2.x donc si je lance pip en fait, je lance pip2 hors moi je veux une installation pour python3 donc j'ai installé pip pour python3 et je le lance via pip3. De même si je tape python, ça lance python2.7 donc pour lancer python 3.x, je tape python3

pip3 install --no-binary :all: Pillow est bien compatible avec ce que je veux faire puisqu'après cela fonctionne.
pip3 install Pillow aurait du suffire mais avec cette commande, je ramasse le binaire et non les sources et c'est là que ça coince : tout s'installe correctement et ensuite from PIL import Image provoque l'erreur "Opération non permise"

from PIL import Image est la base de l'utilisation de Pillow

Dans les 2 cas (que ce soit avec les sources ou avec le binaire), le module que je récupère est de la même version !!!
Ca me fait dire que le binaire n'est pas compilé pour mon raspberry (avec le binaire, ça plante, avec les sources, ça fonctionne)
Dans les 2 cas (binaire ou sources) je récupère Pillow 5.4.1 !

Mon raspberry a le noyau 5.10.63+ ........ c'est donc le n-1 (le dernier est le 5.10.70)
Le dépôt que j'utilise est buster (bullseye vient tout juste de sortir, buster est le n-1)

Et, je ne suis pas spécialiste de pip mais pip n'a que faire du fichier de dépôt d'aptitude donc buster ou pas, comment le sait-il ?
D'ailleurs comme pip s'utilise aussi sur Windows et Mac.....pour moi, pip ne doit avoir à gérer que les dépendances internes à python + l'architecture (Arm, x86, x64)
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: from PIL import Image : operation non permise

Message par Artemus24 » sam. 8 janv. 2022 19:41

Salut à tous.
Piper a écrit :mais pip n'a que faire du fichier de dépôt d'aptitude donc buster ou pas, comment le sait il ?
Je ne pensais pas à des entrepôts de Buster ou autre.
Mais au fonctionnement même du "pip" selon les versions installés dans la Raspberry.
Bud Spencer a écrit :Problème récurant avec python quand il y a plusieurs versions d'installées sur un meme système.
Par défaut, il y a deux version d'installés de python dans la Raspberry.
Je ne peux pas désinstaller la version 2.0 de Python car elle est utilisée par l'OS de la Raspberry Pi.

Cordialement.
Artemus24.
@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

Re: from PIL import Image : operation non permise

Message par piper » sam. 8 janv. 2022 22:15

Mais au fonctionnement même du "pip" selon les versions installés dans la Raspberry.
Pip utilise sa propre base de données de modules disponibles. Chaque module a un fichier requirements qui fournit à pip les dépendances à vérifier
pip/python sont multi-os. Seule l'architecture est prise en compte (Arm, Intel86 / Amd64).
Par défaut, il y a deux version d'installés de python dans la Raspberry.
Je ne peux pas désinstaller la version 2.0 de Python car elle est utilisée par l'OS de la Raspberry Pi.
Je sais : trop de différences entre les 2 versions et trop de programmes développés sur python2 pour les systèmes linux et trop peu de modules ayant totalement migrés vers python 3 (trop de travail vu les incompatibilités)

Exception faite de Fedora/RedHat : pas de python2.x mais on peut l'installer. Fedora 35 utilise python 3.10 par défaut

Les distributions Debian sont souvent les dernières à franchir le pas vers une nouvelle techno (systemd est sur RaspiOS depuis peu alors que systemd est le gestionnaire de services par défaut de CentOS, Fedora et RedHat depuis 10 ans)
Les défenseurs de debian disent que c'est preuve de fiabilité.......
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: from PIL import Image : operation non permise

Message par Bud Spencer » dim. 9 janv. 2022 12:01

Artemus24 a écrit :
sam. 8 janv. 2022 19:41
Par défaut, il y a deux version d'installés de python dans la Raspberry.
Je ne peux pas désinstaller la version 2.0 de Python car elle est utilisée par l'OS de la Raspberry Pi.
Il ni a pas vraiment de soucis de cohabitation entre python2 et python3. Le probleme est plus lié aux méthodes d’installations des versions mineure (par exemple 3.X.x et 3.Y.x.). Le probleme est bien connu et il y a plein d’outils pour éviter ce genre de désagrément (pienv, pyenv, virtualenv et j’en passe …). Une autre solution est de ne pas utiliser python, mais ca c'est une autre histoire :lol: ...
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Répondre

Retourner vers « En panne ? »