同时运行多个python脚本

问题描述 投票:23回答:8

如何运行多个python脚本?目前我运行一个像python script1.py

我已经尝试过python script1.py script2.py但这不起作用:只运行第一个脚本。另外,我尝试过使用这样的单个文件;

import script1
import script2

python script1.py
python script2.py

然而,这也不起作用。

python linux shell
8个回答
46
投票

使用Bash:

python script1.py &
python script2.py &

这就是整个剧本。它将同时运行两个Python脚本。

Python可以自己做同样的事情,但它需要更多的打字,对于手头的问题是一个糟糕的选择。

我认为你可能会采取错误的方法来解决你的问题,我想听听你的意见。


21
投票

同时运行两个Python进程的最简单的解决方案是从bash文件运行它们,并告诉每个进程使用& shell运算符进入后台。

python script1.py &
python script2.py &

有关并行运行多个进程的更受控制的方法,请查看Supervisor project,或使用multiprocessing module从Python内部编排。


3
投票

我必须这样做并使用子进程。

import subprocess

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

0
投票

我在使用Python IDLE的Windows 7中工作。我有两个程序,

# 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程序同时运行,一个shell运行progA而另一个运行progB。


0
投票

您可以使用Gnu-Parallel同时运行命令,适用于Windows,Linux / Unix。

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


0
投票

我在node.js(在Windows 10上)执行此操作,方法是打开2个单独的cmd实例并在每个实例中运行每个程序。

这样做的好处是每个脚本都可以轻松看到写入控制台。

我看到在python中可以做同样的事情:2个shell。

您可以同时运行IDLE / Python shell的多个实例。因此,打开IDLE并运行服务器代码,然后再次打开IDLE,这将启动一个单独的实例,然后运行您的客户端代码。


-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的新手。

更新:我找到了一个包:https://pypi.org/project/schedule/上面的包可以用来运行多个脚本和功能,请检查这个,也许在周末也会提供一些例子。

即:导入计划导入时间导入脚本1,脚本2

 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)

-1
投票

如果要并行运行两个Python脚本,则只需在脚本末尾包含以下内容:

if __name__=="__main__":
     Main()
© www.soinside.com 2019 - 2024. All rights reserved.