Попытка сгенерировать боке-графики с использованием многопроцессорной обработки python, в итоге оказалась ниже ошибки - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь генерировать и возвращать боке графики.В этом процессе я использую многопроцессорную обработку Python, чтобы ускорить процесс, так как у меня есть большее количество графиков для генерации.

Ниже приведен пример того, как мой код выглядит ..

 from multiprocessing import Pool
 from bokeh.plotting import gridplot

 class A():
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z

    def generate_bokeh_plot(self, id):
        # This method will generate and return bokeh plot
        # Also, I am using above x, y, z in this method 

        # This is an example of how my plot looks like and I am returning this
        plot = <class 'bokeh.plotting.figure.Figure'>

        return plot

obj = A(x,y,z)
# Mine is 8 core machine, I am using 7 at a time
pool = pool(7)
plots = pool.map(obj.generate_bokeh_plot, id_list)
pool.close()
pool.join()

panel = gridplot(plots)
script, div = components(panel)

Для этого я получаю следующую ошибку

multiprocess.pool.MaybeEncodingError: Error sending result: '[Column(id='b80aa557-5157-4d5d-b891-236642b96abe', ...)]'. Reason: 'PicklingError("Can't pickle <class 'bokeh.core.enums.Enumeration'>: it's not the same object as bokeh.core.enums.Enumeration",)'

Я также пытался использовать пафос, в конечном итоге получаю ту же ошибку

import pathos.pools as pp
p = pp.ProcessPool(7)
p.map()

or 

from pathos.multiprocessing import ProcessingPool as Pool
pool = Pool(7)
pool.map()

Моя среда: Я использую Python3.6 с веб-фреймворком Pyramid, RHEL

Любая помощь по этому вопросу будет принята с благодарностью:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...