Я хотел бы вызвать метод из экземпляра объекта как подпроцесс. Я использую Python 3.6 на Windows 10.
давайте создадим простой класс:
class A:
def __init__(self):
self.a = "A"
def run(self):
print("Hello World")
Проверь это
>>> a = A()
>>> a.run()
Hello World
Затем вызовите метод запуска через MP
from multiprocessing import Process
if __name__ == "__main__":
p = Process(target=a.run)
p.start()
И тогда у меня есть следующая ошибка:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\Synerlink\AppData\Local\Programs\Python\Python36\lib\multiprocessing\spawn.py", line 105, in spawn_main
exitcode = _main(fd)
File "C:\Users\Synerlink\AppData\Local\Programs\Python\Python36\lib\multiprocessing\spawn.py", line 115, in _main
self = reduction.pickle.load(from_parent)
AttributeError: Can't get attribute 'A' on <module '__main__' (built-in)>
Может ли кто-нибудь объяснить мне, откуда это взялось, если есть способ сделать это?






Не уверен, как выглядит ваш полный код, но это просто работает.
from multiprocessing import Process
class A:
def __init__(self):
self.a = 'A'
def run(self):
print('Hello World')
if __name__ == '__main__':
a = A()
p = Process(target=a.run)
p.start()