Ich suche nach einer einfachen Methode, um alle verfügbaren COM-Ports auf einem PC aufzulisten.
Ich habe diese Methode gefunden, aber sie ist Windows-spezifisch: Auflisten von seriellen (COM) Ports unter Windows?
Ich verwende Python 3 mit pySerial auf einem Windows 7-PC.
Ich habe in der pySerial-API ( http://pyserial.sourceforge.net/pyserial_api.html ) eine Funktion gefunden serial.tools.list_ports.comports()
, die COM-Ports auflistet (genau das, was ich will).
import serial.tools.list_ports
print(list(serial.tools.list_ports.comports()))
Aber es scheint, dass es nicht funktioniert. Wenn mein USB-zu-COM-Gateway mit dem PC verbunden ist (ich sehe den COM5 im Geräte-Manager), ist dieser COM-Anschluss nicht in der von zurückgegebenen Liste enthalten list_ports.comports()
. Stattdessen bekomme ich nur COM4, das an ein Modem angeschlossen zu sein scheint (ich sehe es nicht im COM & LPT-Bereich des Geräte-Managers)!
Weißt du warum es nicht funktioniert? Haben Sie eine andere Lösung, die nicht systemspezifisch ist?
comports()
in dieser Frage beschriebene Fehler in der Funktion von pySerial (ohne genaue Informationen zur Reproduktion) wahrscheinlich behoben wurde. Versuchen Sie es zunächstimport serial.tools.list_ports; print([comport.device for comport in serial.tools.list_ports.comports()])
. Nur wenn dies für Sie nicht funktioniert, sind die folgenden Antworten für Sie relevant.