Page 1 sur 1

MotionEye et erreur AttributeError: module 'collections' has no attribute 'MutableMapping'

Posté : lun. 16 juin 2025 13:30
par piper
Pour les utilisateurs de motieneye qui sont passez sous bookworm (donc python3.11)
Motioeneye, même dans sa version python3 va planter avec l'erreur (sauf à se mettre dans un environnement virtuel avec une version précédente de python)

Code : Tout sélectionner

AttributeError: module 'collections' has no attribute 'MutableMapping'
La raison ?
Bookworm est fourni avec python 3.11
Motieneye a mis des années à passer de la version python 2.7 à 3.x, quand cela a été fait, c'était pour la 3.7

Sauf que entre la 3.9 et la3.10 il y a eu de gros changements dans python
et MutableMapping n'est plus un attribut direct de collections.

Donc pour résoudre ce pb : Allez dans

Code : Tout sélectionner

/usr/local/lib/python3.10/site-packages/tornado/httputil.py
Cherchez (qui est ligne 107 actuellement)

Code : Tout sélectionner

class HTTPHeaders(collections.MutableMapping)
Et remplacez le part

Code : Tout sélectionner

class HTTPHeaders(collections.abc.MutableMapping)
En espérant que l'équipe de dev de MotionEye ne mette plus 10 ans a mettre à jour son code comme lors du passage à python 3
Ou documente l'installation dans des environnements virtuels (ce qui de mon point de vue est, concernant l'usage d'un service, une aberration)
Pour sa défense, python n'est pas un exemple de maitrise de la comptabilité descendante, et c'est le moins que l'on puisse dire.