Python AttributeError: el objeto ‘módulo’ no tiene atributo ‘Serial’

Estoy tratando de acceder a un puerto serie con Python 2.6 en mi Raspberry Pi que ejecuta Debian. Mi script llamado serial.py intenta importar pySerial:

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

Por alguna razón, se niega a establecer la conexión serial con este error:

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

Cuando bash escribir el mismo código en el intérprete interactivo de Python, todavía no funciona.

Curiosamente, solía funcionar hace un par de horas.

¿Cual podría ser el problema? He intentado arreglar esto por un tiempo, instalando pySerial de nuevo, reescribiendo mi código, revisando el puerto serie, etc.

¡Gracias por adelantado!

Estás importando el módulo, no la clase. Entonces, debes escribir:

 from serial import Serial 

Necesitas instalar serial módulo serial correctamente: pip install pyserial .

Estoy agregando esta solución para las personas que cometen el mismo error que yo.

En la mayoría de los casos: cambie el nombre de su archivo de proyecto ‘serial.py’ y elimine serial.pyc si existe, entonces puede hacer un simple ‘import serial’ sin error de atributo.

El problema ocurre cuando importas ‘algo’ cuando el nombre de tu archivo python es ‘something.py’.

Accidentalmente instalé ‘serial’ ( sudo python -m pip install serial ) en lugar de ‘pySerial’ ( sudo python -m pip install pyserial ), lo que lleva al mismo error.

Si las soluciones mencionadas anteriormente no funcionaron para usted, verifique si instaló la biblioteca correcta.

Ha instalado el paquete incorrecto llamado ‘ serial .

  • Ejecute pip uninstall serial para python 2.x o pip3 uninstall serial para python 3.x
  • Luego instale pyserial si aún no está instalado ejecutando pip install pyserial para python 2.xo pip3 install pyserial para python 3.x.

Si no puedes hacer nada como yo, prueba esto:

Enumere todos los submódulos de “Serie” (o cualquier paquete con el que tenga problemas) con el método descrito aquí: Enumere todos los módulos que forman parte de un paquete de Python

En mi caso, los problemas se resolvieron uno tras otro.

… me parece un bicho …

Este problema se debe a que su proyecto se llama serial.py y la biblioteca importada también tiene un nombre serial, cambie el nombre y eso es todo.

Este error también puede ocurrir si tienes dependencias circulares. Revisa tus importaciones y asegúrate de no tener ningún ciclo.

Sí, este tema es un poco viejo, pero quería compartir la solución que funcionó para mí para quienes la necesiten de todos modos.

Como dijo Ali, intente localizar su progtwig usando lo siguiente de la terminal:

  sudo python3 import serial 

print(serial.__file__) -> Copiar

CTRL+D #(to get out of python)

sudo python3 -> pegar /__init__.py

Activar __init__.py le dirá a tu progtwig “ok, voy a usar Serial from python3”. Mi problema fue que mi progtwig python3 estaba usando Serial from python 2.7

Otra solución: eliminar otras versiones de python

Cao

Fuentes: https://raspberrypi.stackexchange.com/questions/74742/python-serial-serial-module-not-found-error/85930#85930

Tryhard