我对 python 很陌生,遇到了这个错误。代码1:
import multiprocessing as mp
import os
def calc(num1, num2):
global addi
def addi(num1, num2):
print(num1+num2)
m = mp.Process(target = addi, args = (num1, num2))
m.start()
print("here is main", os.getpid())
m.join()
if __name__ == "__main__":
# creating processes
calc(5, 6)
ERROR 1 : ForkingPickler(file, protocol).dump(obj)
AttributeError: Can't pickle local object 'calc.<locals>.addi'
Run Code Online (Sandbox Code Playgroud)
阅读了一些内容后,我了解到 pickle 不能用于本地方法,因此我也尝试了下面的解决方案,该解决方案给出了另一个错误。
代码2:
import multiprocessing as mp
import os
def calc(num1, num2):
**global addi**
def addi(num1, num2):
print(num1+num2)
m = mp.Process(target = addi, args = (num1, …Run Code Online (Sandbox Code Playgroud)