Python Script aufrufen (mit Argumenten)

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
lendl
Foriker
Beiträge: 4
Registriert: Di 26. Apr 2016, 16:19
Kontaktdaten:

Python Script aufrufen (mit Argumenten)

Beitrag von lendl » Di 26. Apr 2016, 16:51

Hallo Zusammen,

ich habe angefangen mit einem Raspberry Pi mit 5" Touch Display einen ATmega zu steuern.
Dazu rufe ich von der Gambas-Gui einen Python-Script auf, der eine I2C.-Verbindung zu meinem ATmega erstellt.

Das funktioniert auch ganz gut, außer wenn ich dem Python-Script ein Argument (in Form einer Variablen) mitgeben will:

gambas code
Public Sub Button9_Click()
Dim arg As Integer
arg = 2
Shell "/home/pi/Documents/script/seteinh.py arg > /tmp/result" Wait
lcd = File.Load("/tmp/result")
TextBox5.Text = lcd
End


Lasse ich im Aufruf die Variable "arg" weg und schreibe die "2" direkt rein, dann funktioniert es:

gambas code
Public Sub Button9_Click()
Dim arg As Integer
arg = 2
Shell "/home/pi/Documents/script/seteinh.py 2 > /tmp/result" Wait
lcd = File.Load("/tmp/result")
TextBox5.Text = lcd
End


Kann mir vielleicht jemand nen Schubs in die richtige richtung geben?
Ich bräuchte nämlich zwingend diese Variable...

Danke vorab!
Zuletzt geändert von tux_ am Di 26. Apr 2016, 17:16, insgesamt 1-mal geändert.
Grund: Fuer gambas-Code bitte die "gambas"-Tags benutzen

tux_
Moderator
Beiträge: 948
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: Python Script aufrufen (mit Argumenten)

Beitrag von tux_ » Di 26. Apr 2016, 17:20

gambas code
Shell "/home/pi/Documents/script/seteinh.py arg > /tmp/result" Wait
Mit dieser Zeile fuehrst du in der Shell den Befehl
shell code
/home/pi/Documents/script/seteinh.py arg > /tmp/result
aus, als wuerdest du ihn Zeichen fuer Zeichen abtippen. Das "arg" ist in dieser Zeile eine Zeichenkette, nicht deine Gambas-Variable. Um den Wert der Variable in die Shell-Zeile zu bekommen, musst du die Variable auslesen und konkatenieren:
gambas code
Shell "/home/pi/Documents/script/seteinh.py " & CStr(arg) & " > /tmp/result" Wait
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

lendl
Foriker
Beiträge: 4
Registriert: Di 26. Apr 2016, 16:19
Kontaktdaten:

Re: Python Script aufrufen (mit Argumenten)

Beitrag von lendl » Di 26. Apr 2016, 17:36

Genau so geht es, vielen Dank für die gute Erklärung!

Adonai56
Foriker
Beiträge: 4
Registriert: Sa 24. Mär 2018, 01:07
Kontaktdaten:

Re: Python Script aufrufen (mit Argumenten)

Beitrag von Adonai56 » Sa 24. Mär 2018, 01:15

Hallo Tux,

bei mir klappt das Aufrufen eines Python-Programms top.
Aber;
wie deklariere ich die Variable im Python-Programm,
damit mein Pytonprog. den Wert aus dem Gambas-Prog.
auch empfängt.

gruß Jürgen

SommerWin
Foriker
Beiträge: 37
Registriert: Do 26. Jan 2017, 20:02
Kontaktdaten:

Re: Python Script aufrufen (mit Argumenten)

Beitrag von SommerWin » So 25. Mär 2018, 15:59

Hallo,
ich glaube auf direkten Weg wird das nicht funktionieren.
Aber du könntest die Gambas Variable auf /tmp/Gambasvariable ablegen und dann mit deinem Python Script wieder einlesen.

Schöne Grüsse
Kurt

Adonai56
Foriker
Beiträge: 4
Registriert: Sa 24. Mär 2018, 01:07
Kontaktdaten:

Re: Python Script aufrufen (mit Argumenten)

Beitrag von Adonai56 » So 25. Mär 2018, 22:33

Hallo Kurt,

erstma danke für deine Antwort.

Hab das Problem folgendermassen gelöst.
Habe dazu Screenshots erstellt.

In Gambas gabz rechts der blaue Button "Displaytext"
übergibt die Aussentemperatur einer Extenen Variablen

----variable = temp01.text
----mit Shell starte ich das Python Programm mit angehängter variablen.

Im Python Programm lese ich die variable ein
----wert1 = sys.argv[1]

und schick den wert ans Display

vielleicht nicht schick, aber klappt.

gruß Jürgen
IMG_20180325_230519.jpg
Display
IMG_20180325_230519.jpg (192.21 KiB) 905 mal betrachtet
IMG_20180325_225819.jpg
Gambas-Code
IMG_20180325_225819.jpg (188.3 KiB) 905 mal betrachtet
IMG_20180325_225651.jpg
Python-Code
IMG_20180325_225651.jpg (113 KiB) 905 mal betrachtet

Adonai56
Foriker
Beiträge: 4
Registriert: Sa 24. Mär 2018, 01:07
Kontaktdaten:

Re: Python Script aufrufen (mit Argumenten)

Beitrag von Adonai56 » So 25. Mär 2018, 22:33

und noch ein Bild
Dateianhänge
IMG_20180325_230531.jpg
IMG_20180325_230531.jpg (129.19 KiB) 905 mal betrachtet

Honsek
Foriker
Beiträge: 355
Registriert: Do 4. Okt 2007, 17:01
Kontaktdaten:

Re: Python Script aufrufen (mit Argumenten)

Beitrag von Honsek » Mo 26. Mär 2018, 13:24

Hallo,

es könnte sein, dass Dich ein Blick auf https://gambas-buch.de/dw/doku.php?id=k5:k5.8:start weiter bringt, wenn mal andere Projekte Optionen und Argumente benötigen.

Mit freundlichem Gruß

Honsek
www.gambas-buch.de
www.gambas-book.net
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

Adonai56
Foriker
Beiträge: 4
Registriert: Sa 24. Mär 2018, 01:07
Kontaktdaten:

Re: Python Script aufrufen (mit Argumenten)

Beitrag von Adonai56 » Fr 30. Mär 2018, 23:56

Hallo Honsek,

herzlichen Dank.
Hatte endlich Zeit da mal reinzuschauen.

Jede Menge Sachen, die ich brauchen kann.

Super, und nochmal Danke

Gruß Jürgen

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste