wake-up-neo.com

Führen Sie mehrere Python-Skripts gleichzeitig aus

Wie kann ich mehrere Python-Skripte ausführen? Im Moment führe ich einen so aus wie python script1.py.

Ich habe python script1.py script2.py ausprobiert und das funktioniert nicht: Nur das erste Skript wird ausgeführt. Ich habe auch versucht, eine einzige Datei wie diese zu verwenden.

import script1
import script2

python script1.py
python script2.py

Das funktioniert aber auch nicht.

18
Sami

Mit Bash: 

python script1.py &
python script2.py &

Das ist das gesamte Skript. Es werden die beiden Python-Skripts gleichzeitig ausgeführt.

Python könnte dasselbe selbst tun, aber es würde viel mehr Tippen erfordern und ist eine schlechte Wahl für das anstehende Problem.

Ich denke, es ist möglich, dass Sie die Lösung Ihres Problems falsch angehen und ich würde gerne hören, was Sie erreichen.

37

Die einfachste Lösung zum gleichzeitigen Ausführen von zwei Python-Prozessen besteht darin, sie von einer Bash-Datei aus auszuführen und jedem Prozess mit dem &-Shell-Operator den Hintergrund zu geben.

python script1.py &
python script2.py &

Um eine kontrollierte Methode zum parallelen Ausführen vieler Prozesse zu erhalten, schauen Sie in das Supervisor-Projekt oder verwenden Sie das Multiprocessing-Modul , um in Python zu orchestrieren.

16
logc

Ich musste dies tun und Subprozess verwendet.

import subprocess

subprocess.run("python3 script1.py & python3 script2.py", Shell=True)
3
user2757128

Sie können Gnu-Parallel verwenden, um Befehle gleichzeitig auszuführen, funktioniert unter Windows, Linux/Unix.

parallel ::: "python script1.py" "python script2.py"

0
I Am Batman

Ich mache dies in node.js (unter Windows 10), indem ich zwei separate cmd-Instanzen öffne und jedes Programm in jeder Instanz ausführt.

Dies hat den Vorteil, dass das Schreiben in die Konsole für jedes Skript leicht sichtbar ist.

Ich sehe, dass in Python dasselbe tun kann: 2 Shells.

Sie können mehrere Instanzen von IDLE/Python Shell gleichzeitig ausführen. Öffnen Sie also IDLE und führen Sie den Servercode aus. Öffnen Sie dann erneut IDLE. Dadurch wird eine separate Instanz und anschließend der Clientcode ausgeführt.

0
D.L

Ich arbeite in Windows 7 mit Python IDLE. Ich habe zwei Programme,

# progA
while True:
    m = input('progA is running ')
    print (m)

und

# progB
while True:
    m = input('progB is running ')
    print (m)

Ich öffne IDLE und öffne dann die Datei progA.py. Ich führe das Programm aus und wenn Sie zur Eingabe aufgefordert werden, gebe ich "b" + <Enter> und dann "c" + <Enter> ein.

Ich schaue in dieses Fenster:

Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 
= RESTART: C:\Users\Mike\AppData\Local\Programs\Python\Python36-32\progA.py =
progA is running b
b
progA is running c
c
progA is running 

Als nächstes gehe ich zurück zu Windows Start und öffne erneut IDLE, diesmal öffne ich die Datei progB.py. Ich führe das Programm aus und wenn Sie zur Eingabe aufgefordert werden, gebe ich "x" + <Enter> und dann "y" + <Enter> ein.

Ich schaue in dieses Fenster:

Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 
= RESTART: C:\Users\Mike\AppData\Local\Programs\Python\Python36-32\progB.py =
progB is running x
x
progB is running y
y
progB is running 

Jetzt laufen zwei IDLE Python 3.6.3 Shell-Programme zur gleichen Zeit, wobei eine Shell progA und die andere progB ausführt.

0
CopyPasteIt