Одновременно запускать несколько скриптов python

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

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

import script1
import script2

python script1.py
python script2.py

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

Ответ 1

С Bash:

python script1.py &
python script2.py &

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

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

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

Ответ 2

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

python script1.py &
python script2.py &

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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

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

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

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

Ответ 6

Если вы хотите запустить два скрипта Python параллельно, просто добавьте следующее в конец скрипта:

if __name__=="__main__":
     Main()

Ответ 7

Попробуйте использовать докеры. Докеры - хороший выбор для разделения разных систем

Ответ 8

Я должен был сделать это и использовал подпроцесс.

import subprocess

subprocess.run("python3 script1.py & python3 script2.py", shell=True)

Ответ 9

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

Обновление: я нашел пакет: https://pypi.org/project/schedule/ Выше пакет может быть использован для запуска нескольких сценариев и функций, пожалуйста, проверьте это, и, возможно, на выходных также предоставит некоторый пример.

то есть: график импорта время импорта script1, script2

 def job():
     print("I'm working...")

 schedule.every(10).minutes.do(job)
 schedule.every().hour.do(job)
 schedule.every().day.at("10:30").do(job)
 schedule.every(5).to(10).days.do(job)
 schedule.every().monday.do(job)
 schedule.every().wednesday.at("13:15").do(job)

 while True:
     schedule.run_pending()
     time.sleep(1)