我有一个脚本,旨在通过多处理管理器将 excel 工作簿(通过 openpyxl)传递给多个工作人员。
似乎以某种方式在多处理管理器中未正确表示 openpyxl 对象,并且该对象被不正确地重新实例化,并给出以下错误消息:
TypeError: __init__() missing 1 required positional argument: 'worksheet'
这是一个MWE:
import multiprocessing
import openpyxl
excelfile = r"path-to-excel.xlsx"
workbook = openpyxl.load_workbook(excelfile)
print(workbook.sheetnames)
if __name__ == "__main__":
with multiprocessing.Manager() as mananger:
run_dictionary = mananger.dict()
run_dictionary['workbook'] = workbook
print(run_dictionary['workbook'].sheetnames)
在as manager
环境之外操作时,读取对象属性可以正常工作,但是在该环境中执行时,Error
会引发 。
我在这里看到openpyxl和多处理可能存在一些问题,但就我而言,我只是在阅读excel。