同时运行多个python脚本

时间:2015-02-16 20:19:09

标签: python linux shell

如何运行多个python脚本?目前我像python script1.py一样运行。{/ p>

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

import script1
import script2

python script1.py
python script2.py

然而,这也不起作用。

9 个答案:

答案 0 :(得分:41)

使用Bash:

python script1.py &
python script2.py &

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

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

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

答案 1 :(得分:17)

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

python script1.py &
python script2.py &

要以更加可控的方式并行运行多个进程,请查看Supervisor project,或使用multiprocessing module从Python内部进行编排。

答案 2 :(得分:1)

我必须这样做,并使用了子过程。

import subprocess

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

答案 3 :(得分: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。

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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

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

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

  
    

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

  

答案 6 :(得分:0)

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

if __name__=="__main__":
     Main()

答案 7 :(得分:0)

我认为最简单的方法是使用PyCharm IDE并安装“ multirun”插件。我在这里尝试了很多解决方案,但最后这个对我有用!

答案 8 :(得分:-2)

您尝试以下方法来运行多个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/ 上面的包可以用来运行多个脚本和功能,请检查这个,也许在周末也会提供一些例子。

即:      进口计划      进口时间      import 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)