pySerial unter Win7?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

Hallo,

ich hatte bisher ein python-script, welches pyserial verwendet unter linux und
winXP (32) am laufen. Habe ich eine Chance das unter win7 (64bit) zum laufen
zu bekommen? Erstmal bekomme ich, obwohl COM50 existiert und sendet (HTERM):
Traceback (most recent call last):
File "C:\Program Files (x86)\Wing IDE 101 4.0\src\debug\tserver\_sandbox.py", line 32, in <module>
File "C:\Python26\Lib\site-packages\serial\serialwin32.py", line 236, in read
raise SerialException("ReadFile failed (%s)" % ctypes.WinError())
serial.serialutil.SerialException: ReadFile failed ([Error 6] Das Handle ist ungültig.)
>>>
code:

Code: Alles auswählen

import serial


   
try:
    s1=serial.Serial('COM50',
         baudrate=115200,               #baudrate
         bytesize=8,                    #number of databits
         parity=serial.PARITY_NONE,     #disable parity checking
         stopbits=serial.STOPBITS_ONE,  #number of stopbits
         timeout=2                      #in sek., None: wait for ever
         )

except (serial.serialutil.SerialException, AttributeError, IndexError): 
    print 'mist'
    
 
                 
if __name__=='__main__':

    str3=s1.read(12)
    print str3
    
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

pyserial sollte auch unter Windows7 funktionieren.

Was an Deiner Fehlermeldung auffällt, ist der Hinweis auf eine Wing IDE _sandbox.py. Kann es sein, dass Du das aus Wing IDE heraus versucht hast zu starten? Mein erster Versuch wäre dann, das Skript an der Eingabeaufforderung zu starten. Die Kommandozeilenintegration bei den IDEs ist idR nicht vollständig bzw. bewusst abgeschirmt, worauf u.a. das "sandbox" hindeuten könnte.
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

jerch hat geschrieben:pyserial sollte auch unter Windows7 funktionieren.

Was an Deiner Fehlermeldung auffällt, ist der Hinweis auf eine Wing IDE _sandbox.py. Kann es sein, dass Du das aus Wing IDE heraus versucht hast zu starten? Mein erster Versuch wäre dann, das Skript an der Eingabeaufforderung zu starten. Die Kommandozeilenintegration bei den IDEs ist idR nicht vollständig bzw. bewusst abgeschirmt, worauf u.a. das "sandbox" hindeuten könnte.
das stimmt, ich habe es aus WingIDE heraus probiert. Allerdings sieht es an der Kommandozeile auch nicht besser aus:
c:\>c:\Python26\python.exe c:\Python26\work\tstser.py
Traceback (most recent call last):
File "c:\Python26\work\tstser.py", line 4, in <module>
str3=s1.read(12)
File "C:\Python26\lib\site-packages\serial\serialwin32.py", line 236, in read
raise SerialException("ReadFile failed (%s)" % ctypes.WinError())
serial.serialutil.SerialException: ReadFile failed ([Error 6] Das Handle ist ung³ltig.)
Unter XP geht's aber. :(
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

Deine Code funktioniert bei mir ohne jede Fehlermeldung. Habe nur den COM Port auf einen bei mir verfügbaren geändert.

Edit: Benutze Win7 x64

Edit2: Habe meine UAC aus, vielleicht musst du die Konsole als Admin starten und dann nochmal versuchen
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

JonasR hat geschrieben: Edit2: Habe meine UAC aus, vielleicht musst du die Konsole als Admin starten und dann nochmal versuchen
sorry für die DAU-Fragen:
-was ist ein UAC?
-ich bin zwar Admin auf der Maschine, aber wie kann ich ggf. die Konsole als Admin starten?
(ich komme vom Pinguin)

Gruß
joh
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Ich habe von Windows keine Ahnung, aber das sollte mit Rechtklick auf das Icon -> Als Administrator starten gehen
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

Zu 1: https://www.google.de/webhp?q=uac
Zu 2: Drück einfach mal Start, gib "cmd" ein, mach einen Rechtsklick auf "cmd.exe" im Suchergebnis und dann "Als Admin ausführen"
Danach musst du noch in dein Arbeitsverzeichnis gehen :)
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

JonasR hat geschrieben:Zu 1: https://www.google.de/webhp?q=uac
Zu 2: Drück einfach mal Start, gib "cmd" ein, mach einen Rechtsklick auf "cmd.exe" im Suchergebnis und dann "Als Admin ausführen"
Danach musst du noch in dein Arbeitsverzeichnis gehen :)
das ändert leider auch nichts:
c:\Python26\work>..\python.exe tstser.py
Traceback (most recent call last):
File "tstser.py", line 4, in <module>
str3=s1.read(12)
File "C:\Python26\lib\site-packages\serial\serialwin32.py", line 236, in read
raise SerialException("ReadFile failed (%s)" % ctypes.WinError())
serial.serialutil.SerialException: ReadFile failed ([Error 6] Das Handle ist ung
³ltig.)
@JonasR: vielleicht liegts ja schon an der Installation, gibts bei pyserial vielleicht 32/64bit Probleme?
Antworten