Одновременное выполнение нескольких скриптов python

как я могу запустить несколько скриптов Python? В данный момент я бегу один, как так python script1.py.

Я пробовал python script1.py script2.py и это не работает: запускается только первый сценарий. Кроме того, я пробовал использовать один такой файл;

import script1
import script2

python script1.py
python script2.py

однако это тоже не работает.

6 ответов


С Баша:

python script1.py &
python script2.py &

это весь сценарий. Он будет запускать два скрипта Python одновременно.

Python может сделать то же самое, но для этого потребуется гораздо больше ввода и это плохой выбор для проблемы.

Я думаю, что это возможно, хотя, что вы принимаете неправильный подход к решению вашей проблемы, и я хотел бы услышать, что вы имеете в виду.


самое простое решение для одновременного запуска двух процессов Python-запустить их из файла bash и сказать каждому процессу, чтобы перейти в фоновый режим с помощью & оператор Шелл.

python script1.py &
python script2.py &

для более контролируемого способа запуска многих процессов параллельно, посмотрите в руководитель проекта, или используйте модуль многопроцессорной для оркестровки изнутри Python.


Я работаю в Windows 7 С Python IDLE. У меня две программы,

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

и

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

Я открываю IDLE, а затем открываю файл progA.py - ... Я запускаю программу, и при появлении запроса на ввод я ввожу "b" + <Enter> а то "c" + <Enter>

Я смотрю на это окно:

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 

затем я возвращаюсь к Windows Start и снова открываю IDLE, на этот раз открывая файл progB.py - ... Я запускаю программу, и при появлении запроса на ввод я ввожу "x" + <Enter> и затем "y" + <Enter>

Я смотрю на это окно:

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 

теперь две простаивающие программы оболочки Python 3.6.3 работают одновременно, одна оболочка работает с progA, а другая-с progB.


можно использовать Gnu-Parallel для одновременного выполнения команд работает в Windows, Linux / Unix.

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


Я делаю это в узел.js (в Windows 10), открыв 2 отдельных экземпляра cmd и запустив каждую программу в каждом экземпляре.

Это имеет то преимущество, что запись на консоль легко видна для каждого скрипта.

Я вижу, что в python можно сделать то же самое: 2 оболочки.

вы можете одновременно запускать несколько экземпляров оболочки IDLE/Python. Поэтому откройте IDLE и запустите код сервера, а затем снова откройте IDLE, который запустит отдельный экземпляр, а затем запустите клиентский код.


попробуйте следующие способы запуска нескольких скриптов python:

  import os
  print "Starting script1"
  os.system("python script1.py arg1 arg2 arg3")
  print "script1 ended"
  print "Starting script2"
  os.system("python script2.py arg1 arg2 arg3")
  print "script2 ended"

Примечание: выполнение нескольких сценариев зависит от чисто подчеркнутой операционной системы, и это не будет одновременным, я был новичком в Python, когда я ответил на него.