172 votes

Python AttributeError : l'objet 'module' n'a pas d'attribut 'Serial'.

J'essaie d'accéder à un port série avec Python 2.6 sur mon Raspberry Pi sous Debian. Mon script nommé serial.py tente d'importer pySerial :

import serial
ser = serial.Serial('/dev/ttyAMA0', 9600)
ser.write("hello world!")

Pour une raison quelconque, il refuse d'établir la connexion série avec cette erreur :

AttributeError: 'module' object has no attribute 'Serial'

Lorsque j'essaie de taper le même code dans l'interpréteur interactif Python, cela ne fonctionne toujours pas.

Étrangement, cela fonctionnait il y a environ deux heures.

Quel est le problème ? J'ai essayé de résoudre ce problème pendant un certain temps, en installant pySerial à nouveau, en réécrivant mon code, en vérifiant à nouveau le port série, etc.

222voto

sql Points 2139

J'ajoute cette solution pour les personnes qui font la même erreur que moi.

Dans la plupart des cas : renommez votre fichier de projet serial.py et supprimer serial.pyc s'il existe, alors vous pouvez simplement faire import serial sans l'erreur d'attribut.

Le problème survient lorsque vous importez 'something' alors que le nom de votre fichier python est 'something.py'.

211voto

Kevin Points 1293

J'ai accidentellement installé "serial" ( sudo python -m pip install serial ) au lieu de "pySerial" ( sudo python -m pip install pyserial ), qui conduisent à la même erreur.

Si les solutions mentionnées précédemment n'ont pas fonctionné, vérifiez que vous avez installé la bonne bibliothèque.

137voto

VGO Points 2095

Vous importez le module, pas la classe. Vous devez donc écrire :

from serial import Serial

Vous devez installer serial correctement : pip install pyserial .

48voto

FutureJJ Points 308

Vous avez installé le paquet incorrect nommé ' en série ' .

  • Exécuter pip uninstall serial pour python 2.x ou pip3 uninstall serial pour python 3.x
  • Installez ensuite pysérial s'il n'a pas déjà été installé par exécutant pip install pyserial pour python 2.x ou pip3 install pyserial pour python 3.x.

9voto

davidleosam Points 347

Ce problème est dû au fait que votre projet s'appelle serial.py et que la bibliothèque importée s'appelle serial aussi, changez le nom et c'est tout.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X