2016-10-07 7 views
0

우선, 다중 처리가 새롭기 때문에 매우 간단하고 간단한 예제 작업을 수행 할 수 없습니다.파이썬 다중 처리가 'module'객체에 'myfunc'속성이 없습니다.

C:\Anaconda2\lib\site-packages\IPython\utils\traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package. 
    warn("IPython.utils.traitlets has moved to a top-level traitlets package.") 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    File "C:\Anaconda2\lib\multiprocessing\forking.py", line 381, in main 
    self = load(from_parent) 
    File "C:\Anaconda2\lib\pickle.py", line 1384, in load 
    return Unpickler(file).load() 
    File "C:\Anaconda2\lib\pickle.py", line 864, in load 
    dispatch[key](self) 
    File "C:\Anaconda2\lib\pickle.py", line 1096, in load_global 
    klass = self.find_class(module, name) 
    File "C:\Anaconda2\lib\pickle.py", line 1132, in find_class 
    klass = getattr(mod, name) 
AttributeError: 'module' object has no attribute 'worker' 

내가이 질문은 매우 모호 것을 알고 있지만 나는 누군가가 날 지점 수 있다면 : 나는이 오류가 여러 번 얻고 코드를 실행

import multiprocessing 

def worker(): 
    """worker function""" 
    print 'Worker' 
    return 

if __name__ == '__main__': 
    jobs = [] 
    for i in range(5): 
     p = multiprocessing.Process(target=worker) 
     jobs.append(p) 
     p.start() 

마다 : 이것은 내가 작업의 예입니다 올바른 방향으로 나는 그것을 고맙게 생각할 것이다.

저는 Windows에서 Python 2.7을 사용하여 Anaconda에서 실행합니다. 코드는 위와 정확히 동일합니다. IDE의 콘솔에서 직접 실행합니다.

EDIT : 명령 프롬프트에서 코드를 직접 실행하면 잘 작동하지만 아나콘다를 사용하여 콘솔을 실행하면 작동하지 않습니다. 아무도 왜 그런지 압니까?

+0

예제가 올바르게 작동합니다. 코드를 "단순화"하지 않았습니까? –

+0

어떻게 프로그램을 실행 했습니까? 이게 Windows에 있습니까? – tdelaney

+0

나는 창문 위에있다. Python 2.7을 사용하여 Anaconda에서 실행한다. 코드는 위와 동일하다. 나는 IDE의 콘솔에서 직접 실행한다. –

답변

0

설명한대로 Anaconda는 다중 처리를 원하지 않습니다. in this 답변. 답에서

:

이 때문에 다중 대화 형 인터프리터에서 잘 작동하지 않는다는 사실이다. 주된 이유는 윈도우에 적용 할 수있는 fork() 함수가 없다는 것입니다. 웹 페이지 자체에서 설명됩니다.

고맙습니다!

관련 문제