2015-02-16 2 views
11

Как запустить несколько сценариев python? На данный момент я запускаю один так python script1.py.Выполнять несколько сценариев python одновременно

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

import script1 
import script2 

python script1.py 
python script2.py 

Однако это не сработает.

+0

Вы хотите запустить их в одно и то же время; или вы хотите запускать их один за другим? – TidB

+0

В то же время. – Sami

+0

Просто запустите 2 экземпляра интерпретатора Python. Это проблема ОС, а не проблема Python. –

ответ

26

С Bash:

python script1.py & 
python script2.py & 

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

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

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

+4

просто хотел сказать, что я ценю последнюю строку наблюдения, хотелось бы узнать больше – verybadatthis

+0

Что такое 'python script1.py && python script2.py &' do? – marciokoko

+0

Выполняет то, что запросил OP - одновременно запускает два скрипта python. –

11

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

python script1.py & 
python script2.py & 

Для более контролируемым способом запуска многих процессов параллельно, заглянуть в Supervisor project, или использовать multiprocessing module оркестровать внутри Python.

+0

Как ваш ответ отличается от того, что уже опубликовано? – Noah

+3

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

+0

Интересно, что ваш ответ, кажется, был опубликован перед принятым ответом. Есть разница в три минуты. – Noah

-1

Вы попробуйте следующие способы запуска нескольких сценариев 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 когда я ответил.

+0

Это не помогает запускать их одновременно, как мы можем запускать несколько сценариев изнутри python одновременно? –

+0

В Python одновременное выполнение больших дебатов ... Пожалуйста, прочитайте больше GIL глобальный интерпретатор блокировки. –

0

Я работаю в 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 и открыть 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 

Теперь два IDLE Python 3.6.3 программы Shell работает одновременно, одна оболочка работает progA, а другая - progB.

0

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

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

Смежные вопросы