본문 바로가기
파이썬

파이썬 다중 처리 오류와의 또 다른 혼동, '모듈'개체에 'f'속성이 없습니다.

by º기록 2020. 12. 2.
반응형

나는 이것이 이전에 대답 한 것을 알고 있지만 "python filename.py"스크립트를 직접 실행하면 작동하지 않는 것 같습니다. SuSE Linux에 Python 2.6.2가 있습니다.

암호:

#!/usr/bin/python
# -*- coding: utf-8 -*-
from multiprocessing import Pool
p = Pool(1)
def f(x):
    return x*x
p.map(f, [1, 2, 3])

명령 줄 :

> python example.py
Process PoolWorker-1:
Traceback (most recent call last):
File "/usr/lib/python2.6/multiprocessing/process.py", line 231, in _bootstrap
    self.run()
File "/usr/lib/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
File "/usr/lib/python2.6/multiprocessing/pool.py", line 57, in worker
    task = get()
File "/usr/lib/python2.6/multiprocessing/queues.py", line 339, in get
    return recv()
AttributeError: 'module' object has no attribute 'f'

 

해결 방법

 

Pool의 인스턴스를 만들기 전에 f () 함수가 정의되도록 코드를 재구성합니다. 그렇지 않으면 작업자가 귀하의 기능을 볼 수 없습니다.

#!/usr/bin/python
# -*- coding: utf-8 -*-

from multiprocessing import Pool

def f(x):
    return x*x

p = Pool(1)
p.map(f, [1, 2, 3])

 

참조 페이지 https://stackoverflow.com/questions/2782961

 

 

반응형

댓글