[PySerial] AttributeError

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
cs8898
User
Beiträge: 2
Registriert: Samstag 16. März 2013, 16:00

Ich habe folgendes kurzes script geschrieben...

Code: Alles auswählen

import serial
s = serial.Serial(port='/dev/ttyACM0', baundrate=9600)
while 1:
        s.write(input('Send: '))
        print ('got: ' + s.read())
nun habe ich aber da problem wenn ich das Script mit Python3 start kommt

Code: Alles auswählen

christian@SchmiedC2:~/Dokumente/[Python]$ python serial.py 
Traceback (most recent call last):
  File "serial.py", line 1, in <module>
    import serial
  File "/home/christian/Dokumente/[Python]/serial.py", line 2, in <module>
    s = serial.Serial(port='/dev/ttyACM0', baundrate=9600)
AttributeError: 'module' object has no attribute 'Serial'
Ich nutze wie man sieht Linux, und wolte dazu ein kleines Echoscript zu meinem Arduino schreiben.
Der Arduino code funktioniert
danke für eure hilfe schonmal
BlackJack

@cs8898: Module entsprechen Dateien und Du hast Deine Datei `serial.py` genannt und die hat nun mal kein `Serial` definiert. ;-)

Nicht vergessen auch eine eventuell vorhandene *.pyc-Datei zu löschen nach dem Du Dein Modul umbenannt hast.

Edit: Endlosschleifen sind deutlicher als ``while True``, Namen dürfen sehr gerne auch länger als ein Buchstabe sein und verraten welche Bedeutung der Wert dahinter hat, Einrücktiefe ist vier Leerzeichen per Konvention, und zwischen Funktionsname und öffnender Klammer für den Aufruf gehört kein Leerzeichen.

Ach ja, mit `baundrate` wirst Du Probleme bekommen, das heisst nämlich `baudrate`. ;-)

Edit2: Das `read()` ist vielleicht auch nicht das was Du willst. Ungetestet:

Code: Alles auswählen

#!/usr/bin/env python3
# coding: utf-8
from serial import Serial


def main():
    connection = Serial('/dev/ttyACM0', 9600)
    while True:
        connection.write(input('Send: '))
        print('got:', connection.readline())


if __name__ == '__main__':
    main()
Antworten