Python im Hintergrund

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
Fischchen
User
Beiträge: 3
Registriert: Mittwoch 12. Februar 2020, 09:06

Hallo,
Ich versuche ein python pogramm auf ubutu mate im hintergund laufen zu lassen...
Das pogramm benutzt gpio und simuliert dem input entsprechend tastatur Eingabe (pfeiltasten)
Wenn ich diese pogramm jetzt in den Hintergund stelle funktioniert es nicht mehr! Ich benutze die Bibliotheken zerogpio und pyautogui.
Ich bin anfänger in python und hoffe mir das mir hier jemand helfen könnte!

Danke im vorraus,
Fischchen
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Statt pyautogui solltest du das hier zb verwenden: https://python-libevdev.readthedocs.io/en/latest/
Fischchen
User
Beiträge: 3
Registriert: Mittwoch 12. Februar 2020, 09:06

__deets__ hat geschrieben: Mittwoch 12. Februar 2020, 09:36 Statt pyautogui solltest du das hier zb verwenden: https://python-libevdev.readthedocs.io/en/latest/
Tut mir leid ich bin leider absoluter anfänger. Hättest du eine Quelle für tips dazu oder so?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist doch die Quelle. Da stehen doch Beispiele, Installationsanweisungen, etc. Was davon ist dir konkret unklar?
Benutzeravatar
__blackjack__
User
Beiträge: 14051
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Warum was verwenden was root-Rechte braucht?
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Warum nicht? Auf einem besseren microcontroller als der der PI hier eingesetzt wird ist das eh egal, und ein Service der etwas so spezifisches tut auch nicht besonders gefährdet.
Benutzeravatar
noisefloor
User
Beiträge: 4193
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Ich versuche ein python pogramm auf ubutu mate im hintergund laufen zu lassen...
Wenn ein Programm - egal welches - im Hintergrund läuft hat es normalerweise keine Zugriff auf die Tastatur. Das geht "nur" an das aktive Fenster / Programm - was ja schon sinnvoll ist.

Vielleicht solltest du nochmal dein Konzept überdenken. Wenn es so funktionieren würde, wie du es dir vorstellst, würdest du z.B. den Cursor in LibreOffice im Textdokument bewegen _und_ den Programm würde reagieren. Nicht unmöglich aber ungewöhnlich.

@__blackjack__ : wie würde man denn ohne low-level Zugriff / Root-Rechte an Tasturevents kommen, wenn das Programm nicht den Fokus hat?

Gruß, noisefloor
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

GUI-Automatisierungen sind meiner Meinung nach das letzte Mittel, wenn es sonst nicht anders geht; GUIs sind dafür gedacht, von Menschen bedient zu werden. Wir wissen ja noch nicht so genau, was du eigentlich vorhast. Welche Software möchtest du denn überhaupt automatisieren? Wenn du das etwas ausführst, fällt jemandem vielleicht eine andere Variante ein.
Benutzeravatar
__blackjack__
User
Beiträge: 14051
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@noisefloor: Es geht hier doch gar nicht darum an Tastaturereignisse zu kommen sondern welche zu generieren. Und das geht mit `pyautogui` ohne spezielle Rechte.

@nezzcarth: Ich weiss es konkret auch nicht, aber es klingt für mich so als sollten einfach Tasten simuliert werden auf bestimmte GPIO-Eingaben. Also Beispielsweise Joy- oder Thumbstick der in Cursor-Tasten übersetzt wird, könnte ich mir da jetzt vorstellen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

@__blackjack__: aber mit pyautogui versucht es der TE doch.
Benutzeravatar
__blackjack__
User
Beiträge: 14051
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@__deets__: Ja ich weiss, und? Das funktioniert auch wenn man es „in den Hintergrund stellt“ für das was ich mir darunter vorstelle. Jetzt ist die Frage wie der TE es in den Hintergrund stellt so das es nicht mehr funktioniert.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Mit pynput kannst du auch Tastaturanschläge lesen bzw. simulieren.
Fischchen
User
Beiträge: 3
Registriert: Mittwoch 12. Februar 2020, 09:06

nezzcarth hat geschrieben: Mittwoch 12. Februar 2020, 20:50 GUI-Automatisierungen sind meiner Meinung nach das letzte Mittel, wenn es sonst nicht anders geht; GUIs sind dafür gedacht, von Menschen bedient zu werden. Wir wissen ja noch nicht so genau, was du eigentlich vorhast. Welche Software möchtest du denn überhaupt automatisieren? Wenn du das etwas ausführst, fällt jemandem vielleicht eine andere Variante ein.
Ich versuche meinen Raspberry pi in einem E-Reader umzubauen... Ich benutze dafür calibre und möchte dem Vollbildmodus nutzen. Um diesen allerdings wieder zu verlassen muss man die Escape taste drücken. Ich habe keine Tastatur angeschlossen deswegen versuche ich es auf diesen weg. Vielen dank für eure hilfe versuche.
Ich würde mich über weitere Hilfe freuen!
Grüsse
Fischchen

Ps:Ich habe pynput bereits ausprobiert, gleiche Resultate
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

Calibre ist übrigens in Python (allerdings 2; das wird sich laut dem Autor auch nicht ändern) geschrieben. Der saubere Ansatz wäre daher meiner Meinung nach, dass man mal schaut, ob man nicht eine Art Wrapper o.Ä. um die dazugehörigen Module schreiben kann, der die von dir gewünschten Funktionen unmittelbar ansteuert. Zugebenermaßen ist das für Einsteiger schwieriger zu realisieren, als die Gui zu automatisieren.
Benutzeravatar
__blackjack__
User
Beiträge: 14051
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@nezzcarth: Der Kommentar ist von 2017 und im offiziellen Github-Repo gibt es einen aktiven py3-Branch in dem auch der Autor selbst committed: https://github.com/kovidgoyal/calibre/commits/py3
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

@__blackjack__: Das ist mir bekannt. Ich habe da nur ein besonders plakatives Zitat herausgesucht. Es gibt auch spätere Zitate, die in dieselbe Kerbe schlagen. Soweit ich weiß, hat sich an der Grundhaltung des Autors nicht viel geändert (ich lasse mich da gerne korrigieren): Andere dürfen gerne Patches für Python3 committen, solange der Code unter Python 2 und 3 läuft. Und so ist dann auch der Branch zustande gekommen; dafür sind im wesentlich andere Personen verantwortlich (siehe https://github.com/kovidgoyal/calibre/pull/870). Die Commit-Historie des Branches ist übrigens nicht besonders zuverlässig und viele der Commits, die man dort sieht, stammen denke ich aus dem Master Branch.

So oder so ist mein Stand, dass zumindest die aktuelle Version bei mir nicht unter Python3 läuft. Wenn man also wirklich damit programmieren will, kommt man auf absehbare Zeit nicht um Python 2 herum.
Antworten