Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在课堂上使用多重处理_Python 3.x_Python Multiprocessing - Fatal编程技术网

Python 3.x 如何在课堂上使用多重处理

Python 3.x 如何在课堂上使用多重处理,python-3.x,python-multiprocessing,Python 3.x,Python Multiprocessing,我正在制作学习python的程序。 它是gui网络爬虫。 我成功地使用QThread实现了多工作gui和主类 但我有个问题。 在main类中,首先使用webdriver获取图片地址,并创建一个名为data的列表。 然后使用pool()和map()在主类中使用download_image方法开始下载图片 我搜索并尝试了很多东西。 imap和lambda等 这是我的密码 (i以mul形式导入多进程) (我的python版本是3.7) 如果我设置下载地图(self.download\u图像、数据) 我

我正在制作学习python的程序。 它是gui网络爬虫。 我成功地使用QThread实现了多工作gui和主类 但我有个问题。 在main类中,首先使用webdriver获取图片地址,并创建一个名为data的列表。 然后使用pool()和map()在主类中使用download_image方法开始下载图片

我搜索并尝试了很多东西。 imap和lambda等

这是我的密码 (i以mul形式导入多进程) (我的python版本是3.7)

如果我设置下载地图(self.download\u图像、数据) 我得到这个错误->[TypeError:无法pickle主对象]

如果我设置下载地图(self.download\u image,self.data) (并设置self.data=[URL…]) 我也有同样的打字错误

如果我设置下载地图(self.download\u图像、self、数据) 我收到此错误->[TypeError:“Main”对象不可编辑

我也不擅长英语和Python 但是我想解决这个问题,所以我决定在这里提问 真的很感谢你看这个新手的问题

# crawler and downloader class
class Main(QThread, QObject):
    def __init__(self, path, brand, model, grade):
        QThread.__init__(self)
        self.path = path

    # this is download method
    def download_image(self, var):
        a = var.split("/")
        filename = a[-1]
        download_path = self.path + filename
        urllib.request.urlretreieve(var, download_path)

    # this is start method when button clicked in Gui
    def core(self):
        #sample url data list
        data = ['url.com', 'url2.com', 'url3.com', ...]
        download_p = Pool(mul.cpu_count())
        download_p.map(self.download_image, data)
        download_p.close()
        download_p.join()
        print("end")

    def run(self):
        self.core()


class Gui(QMainWindow, design.Ui_MainWindow):
    def __init__(self):
        (and gui code here)