Открываю документацию по
модулю, копирую первый же или, например, второй пример в IDE:
from multiprocessing import Process
def f(name):
print('hello', name)
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
И получаю, вот такую ошибку:
>>> Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Python36\lib\multiprocessing\spawn.py", line 105, in spawn_main
exitcode = _main(fd)
File "C:\Python36\lib\multiprocessing\spawn.py", line 115, in _main
self = reduction.pickle.load(from_parent)
AttributeError: Can't get attribute 'f' on <module '__main__' (built-in)>
Тоже самое, если вводить через терминал. В стандартном IDLE просто ничего не происходит.
Другие примеры - например из модуля
threading запускаются без проблем. Почемуто сложности именно с этой либой. Хоть что-то начинает работать только, если вместо модуля
multiprocessing использовать
multiprocessing.dummy, но вроде это опять потоки, а не процессы.
(WIn10 x64 - Python обновил недавно до 3.6.4)
Подскажите в чем может быть проблема?