Python 多进程池.starmap可以';不要胡闹

Python 多进程池.starmap可以';不要胡闹,python,multiprocessing,closures,Python,Multiprocessing,Closures,在下面代码中显示的函数上运行pool starmap命令时遇到问题。我收到错误AttributeError:cannotpickle local object'Class\u Name.Function\u Outer..Function\u inner..Function\u Inner2' 注意:似乎是starmap命令本身导致了问题。我不确定我的输入是否有误,或者是什么——通常它对我有效 下面是导致问题的代码 from fabric import connection import mul

在下面代码中显示的函数上运行pool starmap命令时遇到问题。我收到错误
AttributeError:cannotpickle local object'Class\u Name.Function\u Outer..Function\u inner..Function\u Inner2'

注意:似乎是
starmap
命令本身导致了问题。我不确定我的输入是否有误,或者是什么——通常它对我有效

下面是导致问题的代码

from fabric import connection
import multiprocessing as mp

paths = ["/path/to/filename.txt", "/path/to/filename2.txt"]
pi_addresses = ["192.168.2.100", "192.168.2.101"]

print
语句输出两个列表,一个是照片,一个是连接。两个列表都有两个条目


非常感谢您的帮助。

您需要在
内部制作文件
之外定义
内部制作文件
,以便
多处理.Pool.starmap
工作。是的,这就是问题所在。谢谢
def Inner_make_files(self, pi_addresses, paths):      

    #This list just creates a list of Raspberry Pis to SSH into with the fabric module
    pi_list = [connection.Connection(x, port=22, user="pi",
                connect_kwargs={"password" : “Raspberry”}) for x in self.pi_addresses]
    barrier = mp.Barrier(len(self.pi_list))

    def Inner2_create_file(self, pi, path):
        nonlocal barrier
        barrier.wait()
        pi.run(“raspistill -o {}”.format(path))  #Creates a new photo on the Pis
        pi.get(path, path) #Retrieves new file that was made

    print(paths)
    print(pi_list)
    pool = mp.Pool(processes = len(pi_list))
    pool.starmap(Inner2_create_file, zip(pi_list, paths))
    pool.close()
    pool.join()