Amunrah
@Amunrah
Сказочный персонаж ))

Почему пример из документации, для модуля multiprocessing не работает?

Открываю документацию по модулю, копирую первый же или, например, второй пример в 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)
Подскажите в чем может быть проблема?
  • Вопрос задан
  • 505 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы