folgender Python 3 Code reagiert nur auf Änderungen an USB-Ports, wenn er nicht in einer virtuellen Umgebung (venv) ausgeführt wird. In meinem Fall wurde die virtuelle Umgebung von PyCharm eingerichtet und die Pakete `PyQt5` und `pyudev` zusätzlich installiert.
- Warum funktioniert die Erkennung auf Änderungen am USB-Port nicht in einer virtuellen Umgebung?
- Was muss man am Code (oder in PyCharm) ändern, damit die Erkennung auch in einer virtuellen Umgebung tut was sie soll?
Code: Alles auswählen
import sys
import pyudev
from PyQt5.QtWidgets import QApplication
from pyudev.pyqt5 import MonitorObserver
class USBDetector:
def __init__(self):
self._context = pyudev.Context()
self._monitor = pyudev.Monitor.from_netlink(self._context)
self._observer = MonitorObserver(self._monitor)
self._monitor.start()
for device in iter(self._monitor.poll, None):
if device.action == 'add':
# some function to run on insertion of usb
print("Device added")
elif device.action == 'remove':
# some function to run on removal of usb
print("Device removed")
def main():
app = QApplication(sys.argv)
usb_detector = USBDetector()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
Atalanttore