Seite 1 von 1

2 Programme gleichzeitig ausführen lassen

Verfasst: Samstag 28. Juli 2018, 18:12
von Phobit
Hallo,
ist es möglich, 2 Python Skripte gleichzeitg ausführen zu lassen?

Also, ich weiß, dass man beide öffnen kann und dann bei beiden auf "run" drücken kann, aber gibt es eine Möglichkeit, dass über ein Python File zu regeln?

Also sowas wie

Code: Alles auswählen

import File1
import FIle2
Nur eben gleichzeitig, sodass man nicht warten muss bis ein Programm fertig ist

Danke schonmal im Vorraus

Re: 2 Programme gleichzeitig ausführen lassen

Verfasst: Samstag 28. Juli 2018, 19:05
von noisefloor
Hallo,

grundsätzlich: ja. ZB. mittels des multiprocessing oder concurrent.futures (und dann multiprocessing) Moduls. Wenn du Nebenläufigkeit brauchst, also "fast gleichzeitige" Ausführung gibt's noch mehr Möglichkeiten.

Was hast du denn genau vor

Gruß, noisefloor

Re: 2 Programme gleichzeitig ausführen lassen

Verfasst: Sonntag 29. Juli 2018, 13:40
von Phobit
Hallo,
ich möchte 2 verschiedene Discord Bots gleichzeitig hier laufen lassen, wäre eben schön wenn man beide gleichzeitig starten könnte!

Re: 2 Programme gleichzeitig ausführen lassen

Verfasst: Sonntag 29. Juli 2018, 13:51
von noisefloor
Hallo,

müssen die Bots miteinander kommunizieren oder sonst irgendwie interagieren? Ansonsten kannst du die doch einfach nacheinander starten (z.B. über je eine systemd Service Unit, falls du Linux als OS benutzt) und dann laufen die parallel.

Gruß, noisefloor

Re: 2 Programme gleichzeitig ausführen lassen

Verfasst: Freitag 10. August 2018, 10:53
von Phobit
Nein, die laufen einzeln.
Es war mir schon klar dass das so ganz einfach geht, mich hätte nur interessiert ob es möglich wäre beide über eine Datei/einen Befehl zu starten ;)

Re: 2 Programme gleichzeitig ausführen lassen

Verfasst: Freitag 10. August 2018, 11:28
von addi
Mit subprocess könntest du es zb. machen.

Also sowas wie:

Code: Alles auswählen

import subprocess

subprocess.call([ 'python', 'file1.py'])

Re: 2 Programme gleichzeitig ausführen lassen

Verfasst: Freitag 10. August 2018, 12:46
von Phobit
dieser Code würde dann im File2.py stehen oder wie wird das dann aufgerufen?

Re: 2 Programme gleichzeitig ausführen lassen

Verfasst: Freitag 10. August 2018, 13:39
von noisefloor
Hallo,
addi hat geschrieben: Freitag 10. August 2018, 11:28 Mit subprocess könntest du es zb. machen.

Also sowas wie:

Code: Alles auswählen

import subprocess

subprocess.call([ 'python', 'file1.py'])
Eine Python-Datei über eine andere mittels `subproces` starten ist in 99,999999999% der Fällen so ziemlich der falscheste Weg, den man wählen kann. Wenn importiert man alles aus `file1.py` und führt es dann entsprechend aus.
Phobit hat geschrieben: Freitag 10. August 2018, 10:53 Nein, die laufen einzeln.
Es war mir schon klar dass das so ganz einfach geht, mich hätte nur interessiert ob es möglich wäre beide über eine Datei/einen Befehl zu starten ;)
Ja, unter Linux einfach ohne Python über eine systemd Service Unit. Äquivalente Weg gibt's sicherlich auch unter MacOS und Windows.

Gruß, noisefloor

Re: 2 Programme gleichzeitig ausführen lassen

Verfasst: Freitag 10. August 2018, 14:19
von Phobit
Danke, von systemd hab ich jetzt schon mehr gehört, werde mich jetzt mal damit auseinandersetzen...

Re: 2 Programme gleichzeitig ausführen lassen

Verfasst: Freitag 10. August 2018, 14:27
von addi
@noisefloor

Okay, gut dann weiß ich es für die Zukunft besser.

Kurzes OT: Was ist eigentlich mit pip, das kann man doch ohne Bedenken mit subprocess aufrufen oder?