Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何在python中同时(并行)运行多个可执行文件(*.exe)?_Python 2.7_Parallel Processing - Fatal编程技术网

Python 2.7 如何在python中同时(并行)运行多个可执行文件(*.exe)?

Python 2.7 如何在python中同时(并行)运行多个可执行文件(*.exe)?,python-2.7,parallel-processing,Python 2.7,Parallel Processing,我需要在python 2.7中并行运行不同的*.exe文件。这些*.exe文件是用C++语言创建的。另外,我需要为调用的每个*.exe文件打开cmd窗口 我已经尝试了一些多处理库,但没有成功。发生了什么事,电脑崩溃了 import os import subprocess cwd = os.getcwd() cmd_MakeBackgroundImage = cwd+"\\MakeBackgroundImage.exe" cmd_SFVTest = cwd + "\\SFVTest.exe"

我需要在python 2.7中并行运行不同的*.exe文件。这些*.exe文件是用C++语言创建的。另外,我需要为调用的每个*.exe文件打开cmd窗口

我已经尝试了一些多处理库,但没有成功。发生了什么事,电脑崩溃了

import os
import subprocess

cwd = os.getcwd()

cmd_MakeBackgroundImage = cwd+"\\MakeBackgroundImage.exe"
cmd_SFVTest = cwd + "\\SFVTest.exe"
cmd_Wavelet_x = cwd + "\\Wavelet_x.exe"
cmd_Dataform_x = cwd + "\\Dataform_x.exe"
cmd_Wavelet_y = cwd + "\\Wavelet_y.exe"
cmd_Dataform_y = cwd + "\\Dataform_y.exe"

process_1 = os.system(cmd_MakeBackgroundImage)

process_2 = os.system(cmd_SFVTest)

#I need to run "cmd_Wavelet_x" at the same time of "cmd_Wavelet_y"
#So I need to parallelize process_3 and process_4
process_3 = os.system(cmd_Wavelet_x)

process_4 = os.system(cmd_Wavelet_y)

#I need to run "cmd_Dataform_x" at the same time of "cmd_Dataform_y"
#So I need to parallelize process_5 and process_6
process_5 = os.system(cmd_Dataform_x)

process_6 = os.system(cmd_Dataform_y)
我对python有中级知识,但对python中的并行化一无所知

我描述的代码正是我所需要的,但是是按顺序的 方法我描述的并行化将减少代码 运行时间约为1小时

为每个*.exe打开cmd窗口非常重要,因为这些cmd窗口指示代码运行的状态

谢谢大家!

更新:在Python 2.7中,您可以执行以下操作:

pip安装期货

获取concurrent.futures中的所有功能

仍然在使用Python2.7吗?国防部是2020年。如果您迁移到3.2+,您可以轻松地使用几乎相同代码的concurrent.futures

import concurrent.futures
import os

cwd = os.getcwd()

cmd_MakeBackgroundImage = cwd+"\\MakeBackgroundImage.exe"
cmd_SFVTest = cwd + "\\SFVTest.exe"
cmd_Wavelet_x = cwd + "\\Wavelet_x.exe"
cmd_Dataform_x = cwd + "\\Dataform_x.exe"
cmd_Wavelet_y = cwd + "\\Wavelet_y.exe"
cmd_Dataform_y = cwd + "\\Dataform_y.exe"

# add cmds to be ran concurrently
programs = [cmd_SFVTest, cmd_Wavelet_x, cmd_Dataform_x, cmd_Wavelet_y, cmd_Dataform_y]

# you can use either Process or Thread depends on your needs

with concurrent.futures.ProcessPoolExecutor() as executor:
    executor.map(os.system, programs)


希望这有帮助

嗨,它工作正常。但是,我需要先使用os.system运行MakeBackgroundImage.exe和SFVTest.exe,然后再运行其他代码。当我在os.system之后使用concurrent.futures时,以前执行的所有exe文件将再次并行执行。这是一只奇怪的虫子。我使用的是Spyder 3.3.6。