Проблема с классами в multiprocessing
У меня появилась необходимость перевести свою программу на многопоточность, но как только я попытался использовать свой класс наследованный от класса библиотеки, то процесс отказался работать. Тоже самое происходит и при использовании экземпляров других бибилиотек в моем классе. Я написал самый простой пример, который уже провоцирует возникновение моей ошибки.
from multiprocessing import Process
from chatterbot import ChatBot
class test_bot(ChatBot):
def __init__(self):
super().__init__("bot")
def func(self):
print("hello")
if __name__ == "__main__":
bot = test_bot()
p = Process(target=bot.func)
p.start()
p.join()
И получается такая ошибка
Traceback (most recent call last): File "C:/Users/Admin/PycharmProjects/TestBot/test.py", line 19, in a.start() File "C:\Program Files\Python36\lib\multiprocessing\process.py", line 105, in start self._popen = self._Popen(self) File "C:\Program Files\Python36\lib\multiprocessing\context.py", line 223, in _Popen return _default_context.get_context().Process._Popen(process_obj) File "C:\Program Files\Python36\lib\multiprocessing\context.py", line 322, in _Popen return Popen(process_obj) File "C:\Program Files\Python36\lib\multiprocessing\popen_spawn_win32.py", line 65, in init reduction.dump(process_obj, to_child) File "C:\Program Files\Python36\lib\multiprocessing\reduction.py", line 60, in dump ForkingPickler(file, protocol).dump(obj) TypeError: can't pickle _thread._local objects
Надеюсь кто нибудь поможет. Заранее спасибо