Parallel processing python3:并行运行C文件和python脚本
我在这篇文章中截取了我实际编写的python脚本。基本上,我希望有一个C程序和一个并行执行的Pyserial函数(C程序用于控制电机,Pyserial用于与arduino通信)。我的程序将使用Spyder3和Rasbian在RPi3b上执行。 我已经从下面的资料中了解到,如果你想让一个终端程序在python中执行,你应该使用subprocess类。如果您希望并行执行某些操作,则来自multiprocessing的进程包将完成此任务。 所以我把它们混合在一起,试图用代码bleow来归档我的目标。不幸的是没有任何成功。调用p1进程[p1=process(target=run_c_file())]后,p1进程立即启动,脚本停止,直到c文件完成。有人能帮忙吗?多谢各位 顺便说一句,我正在使用python 3.5 我的资料来源: , 试一试Parallel processing python3:并行运行C文件和python脚本,parallel-processing,multiprocessing,subprocess,python-3.5,Parallel Processing,Multiprocessing,Subprocess,Python 3.5,我在这篇文章中截取了我实际编写的python脚本。基本上,我希望有一个C程序和一个并行执行的Pyserial函数(C程序用于控制电机,Pyserial用于与arduino通信)。我的程序将使用Spyder3和Rasbian在RPi3b上执行。 我已经从下面的资料中了解到,如果你想让一个终端程序在python中执行,你应该使用subprocess类。如果您希望并行执行某些操作,则来自multiprocessing的进程包将完成此任务。 所以我把它们混合在一起,试图用代码bleow来归档我的目标。不
当前您正在调用函数,而不是传递函数。如果希望Python程序启动外部程序,那么外部程序的实现语言与此无关。哇!炒锅!谢谢!
import serial_comm as ssf #My own function. Tested and working when single calling
import subprocess as sub
from multiprocessing import Process
def run_c_file():
sub.run("./C_File") #Call the C File in the same directory. Immeidatly starts when script is at line 14 -> p1 = Process(target=run_c_file())
def run_pyserial(ser_obj):
ssf.command(ser_obj,"Command") #Tell the arduino to do something fancy (tested and working)
ser_obj = ssf.connect()
p1 = Process(target=run_c_file())
p2 = Process(target=run_pyserial(ser_obj))
try:
p1.start()
p2.start()
p1.join() #Process one should start here (as far as I understood)
p2.join() #Process two should start here (as far as I understood)
'''The following part is still in progress'''
except KeyboardInterrupt:
print("Aborting")
p1.terminate()
p2.terminate()
p1 = Process(target=run_c_file)
p2 = Process(target=run_pyserial, args=(ser_obj,))