пафосная ошибка cpickle на python 2.7.13/14 с использованием windows 10

На примере многопроцессорного использования пафоса и укропа Я наткнулся на стену ошибок cPickle. Я сделал так, как www3cam; с небольшим дополнением.. за счет удаления пафоса, укропа, мультипроцесса и pyreadline. Затем нажмите pip install pathos --no-cache-dir после тщательного удаления упомянутых выше побочных пакетов. Свежая установка, холодная перезагрузка ПК и обновление Anacoda2 позже... банка с cPickles... все еще там, и Фрэнк Заппа продолжает петь свою песню "Titties and Beer".

Модифицированный код из 1:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os, sys
import datetime, time
import multiprocessing
import pathos.pools as pp
import dill


class Multiprocess(object):

    def __init__(self):
        pass

    def qmp_worker(self,(inputs, the_time)):
        print " Processs %s\tWaiting %s seconds" % (inputs, the_time)
        time.sleep(int(the_time))
        print " Process %s\tDONE" % inputs

    def qmp_handler(self):                           # Non tandem pair processing
        pool = pp.ProcessPool(2)
        pool.map(self.qmp_worker, data)

def mp_worker((inputs, the_time)):
    print " Process %s\tWaiting %s seconds" % (inputs, the_time)
    time.sleep(int(the_time))
    print " Process %s\tDONE" % inputs
    sys.stdout.flush()

def mp_handler():                           # Non tandem pair processing
    p = multiprocessing.Pool(2)
    p.map(mp_worker, data)

def mp_handler_tandem():
    subdata = zip(data[0::2], data[1::2])
#    print subdata
    for task1, task2 in subdata:
        p = multiprocessing.Pool(2)
        p.map(mp_worker, (task1, task2))

#data = (['a', '1'], ['b', '2'], ['c', '3'], ['d', '4'])
data = (['a', '2'], ['b', '3'], ['c', '1'], ['d', '4'], 
        ['e', '1'], ['f', '2'], ['g', '3'], ['h', '4'])

if __name__ == '__main__':
    sys.stdout.flush()
#    print 'mp_handler():'
#    mp_handler()
#    print '---'
#    time.sleep(2)

#    print '\nmp_handler_tandem():'
#    mp_handler_tandem()
    print '---'
#    time.sleep(2)

    Multiprocess().qmp_handler()

Возможно, что-то должно быть установлено, как в примере из здесь "отлов и печать трассировок PyQt5?

Фрагмент кода ниже, который заставил меня задуматься, и мне стало любопытно, нужно ли делать что-то подобное для укропа?

# Back up the reference to the exceptionhook
sys._excepthook = sys.excepthook

# Set the exception hook to our wrapping function
sys.excepthook = my_exception_hook

Последняя ошибка:

Файл "c:\python\anac2\lib\site-packages\pathos\multiprocessing.py", строка 137, в карте return _pool.map(star(f), zip(*args)) # размер фрагмента Файл "c:\ python\anac2\lib\site-packages\multiprocess\pool.py", строка 251, в карте return self.map_async(func, iterable, chunksize).get() File "c:\python\anac2\lib\site- Packages\multiprocess\pool.py", строка 567, в get поднять self._value cPickle.PicklingError: Невозможно выбрать: поиск атрибута встроенный.функция не удалась

Дополнительная информация об этой ошибке находится по адресу: мой дамп cPickle.


person ZF007    schedule 12.11.2017    source источник