Одновременное выполнение нескольких скриптов 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, когда я ответил на него.