Python多进程与多处理模块

时间:2020-04-14 22:31:24

标签: linux python-2.7 multiprocessing pickle multiprocess

我正尝试在Python中实现一些密集的文件读取和上载到db任务的多线程。 我尝试在Python中导入多处理模块,但遇到了一个酸洗错误。 但是,在导入多进程模块时,错误消失了,并且按照预期的方式工作。

我在Windows盒子上开发并测试了此代码,并且运行良好。但是,我不得不将其部署到生产盒中,甚至对于多进程模块也要重新获得酸洗错误。 多处理和多进程在Linux上均不起作用。

以下是我尝试实现的示例代码。

def run_insertion():    
    dbs = cfg.prefs.get_key_arr_dbs()
    dbinfo_list = []    
    for key in dbs:
       params = {}
       table_name = 'q_' + str(key).replace('ITE', '').lower() + '_nrfu'
       params['key'] = key
       params['table_name'] = table_name
       params['cfg'] = cfg
       dbinfo_list.append(params)              

    pool = Pool()
    output = pool.map(extract_upload_data, dbinfo_list)
    for res in output:
       print (res)

以下是我收到的确切错误

回溯(最近通话最近): 文件“ bin / data.py”,行179,在 main(sys.argv [0:]) main中的文件“ bin / data.py”,第163行 data_extractor.run_insertion() 在run_insertion中的第30行,文件“ build / bdist.linux-x86_64 / egg / procs / data_extractor_mod.py” 文件“ /usr/lib/python2.7/site-packages/multiprocess-0.70.9-py2.7.egg/multiprocess/pool.py”,行
返回self.map_async(func,可迭代,块大小).get() 文件“ /usr/lib/python2.7/site-packages/multiprocess-0.70.9-py2.7.egg/multiprocess/pool.py”,行 提高自我价值 cPickle.PicklingError:无法腌制:属性查找内置 .module失败

请告知

0 个答案:

没有答案