マルチプロセッシングに問題があります。あなたの下にコードがあります(彼はいくつかのクラスとファイルにありますが、私はそれを単純化しました)。その問題は、マルチプロセッシングで乗算したいパスメソッド名にあると思います。
情報: "args" は [(0,1),(1,2),(2,3)] のようなリストなので、(0,1) のような単一の "arg" です。この 2 つのファイルはまったく別の calatogs にあり
ます。 !最初のファイル!!
from ... import EF
from ... import someclass
class performs():
def action():
for i, arg in enumerate(args):
data.append(EF(self.method,list(arg),i))
someclass.create_processes(*data)
def method(self,fa,la):
...
!!2番目のファイル!!
from multiprocessing import Process,Event
class EF(object):
def __init__(self,name,args=list(),proc=1):
self.name=name
self.args=args
self.proc=proc
class someclass:
@staticmethod
def create_processes(*functions):
processes=dict()
for function in functions:
process=Process(target=function.name,args=function.args)
process.start()
processes[process.pid]=process
for process in processes.values():
process.join()
私がデバッグしているとき、プログラムがこの命令「process.start()」を実行すると、エラーが発生します
コンソール:
File "C:\Python32\lib\multiprocessing\forking.py", line 371, in main
self = load(from_parent)
AttributeError: 'performs' object has no attribute 'function'
または他の状況で
File "C:\Python32\lib\multiprocessing\process.py", line 267, in _bootstrap
self.run()
File "C:\Python32\lib\multiprocessing\process.py", line 116, in run
self._target(*self._args, **self._kwargs)
File "...\performs.py", line 88, in method
...
重要なことはわかりませんが、64ビットシステムがあり、32ビット用のPythonとアクセサリをインストールしました