我正在尝试编写一段代码来传递工作簿,以便使用python多处理库创建多进程。当我试图运行代码时,我得到以下错误
“记忆错误” 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“C:\Users\ajit\u kumar\u kompalli\AppData\Local\Programs\Python38-32\lib\multiprocessing\spawn.py”,第116行,在spawn\u main中 exitcode=_main(fd,父节点_sentinel) 文件“C:\Users\ajit\u kumar\u kompalli\AppData\Local\Programs\Python\Python38-32\lib\multiprocessing\spawn.py”,第126行,在主目录中 self=reduce.pickle.load(从父级) EOFError:输入用尽'
这是我的密码
batch_files_path = r"C:\Users\admin\Desktop\Test\"
master_file = r"C:\Users\admin\Desktop\Test\Master.xlsm"
fwbk = load_workbook(master_file)
ws_WF = fwbk['Workflow']
for count in range(3, len(ws_WF['A']) + 1):
if ws_WF.cell(row=count, column=2).value not in d_batch_type:
d_batch_type[ws_WF.cell(row=count, column=2).value] = ws_WF.cell(row=count, column=3).value
#Generating the Batch - Index Dictionary - Array for operations
d_batch_index = {batch: [] for batch in d_batch_type}
for batch in d_batch_type:
for count in range(3, len(ws_WF['A']) + 1):
if str(batch) == str(ws_WF.cell(row=count,column=2).value):
d_batch_index[batch].append(ws_WF.cell(row=count,column=1).value)
jobs=[]
for batch in d_batch_index:
final_path = batch_files_path + str(batch) + '_Test.xlsx'
if d_batch_type[batch] == 'Weights':
process = multiprocessing.Process(name=batch,target=generate_weighted_worksheet, args=(fwbk, final_path))
jobs.append(process)
elif d_batch_type[batch] == 'AWF':
process = multiprocessing.Process(name=batch,target=generate_awf_worksheet, args=(fwbk, final_path))
jobs.append(process)
process = multiprocessing.Process(name='pse_ops', target=generate_pse_ops_worksheet,
args=(fwbk, pseops_output_path))
jobs.append(process)
for j in jobs:
logging.debug("Starting the process: {}".format(j))
j.start()
print("Starting the process: {} pid:{}".format(j,j.pid))
for j in jobs:
logging.debug("Joining the process: {} under main".format(j))
j.join()
函数生成加权工作表、生成awf工作表、生成pse操作工作表使用fwbk作为输入。所以我想传递那个fwbk变量。我知道python多重处理分配新内存并复制传递的对象/变量。但我不确定这个问题到底是什么。请帮忙
目前没有回答
相关问题 更多 >
编程相关推荐