Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

AttributeError: Can't pickle local object 'shift_coords.<locals>.shifter' #1

Open
Labels
bugSomething isn't working
@dkluffy

Description

多进程下的报错,多线程模式没有

def shift_coords(func):
 def shifter(*args):
 co,st = func(*args)
 co = np.array(co)
 co_dalt = np.random.randint(0,20,co.shape)
 co = co + co_dalt
 return co,st
 return shifter
@shift_coords
def matcher_comm(input_img,targets):
 coords = []
 status = []
 for t in targets.keys():
 pts = match_gray(input_img,targets[t])
 if len(pts)>0:
 coords+=pts
 status+=([t]*len(pts))
 return coords,status
I:\Code_Public\Gamescripts>I:/Anaconda3/Scripts/activate
(base) I:\Code_Public\Gamescripts>conda activate base
(base) I:\Code_Public\Gamescripts>I:/Anaconda3/python.exe i:/Code_Public/Gamescripts/main.py
Warning: some status, don't have valide image
Traceback (most recent call last):
 File "i:/Code_Public/Gamescripts/main.py", line 60, in <module> 
 p_list.append(comm_task_on_pc(["test01"],10))
 File "i:/Code_Public/Gamescripts/main.py", line 42, in comm_task_on_pc
 p0.start()
 File "I:\Anaconda3\lib\multiprocessing\process.py", line 112, in start
 self._popen = self._Popen(self)
 File "I:\Anaconda3\lib\multiprocessing\context.py", line 223, in _Popen
 return _default_context.get_context().Process._Popen(process_obj)
 File "I:\Anaconda3\lib\multiprocessing\context.py", line 322, in _Popen
 return Popen(process_obj)
 File "I:\Anaconda3\lib\multiprocessing\popen_spawn_win32.py", line 89, in __init__
 reduction.dump(process_obj, to_child)
 File "I:\Anaconda3\lib\multiprocessing\reduction.py", line 60, in dump
 ForkingPickler(file, protocol).dump(obj)
AttributeError: Can't pickle local object 'shift_coords.<locals>.shifter'
(base) I:\Code_Public\Gamescripts>Traceback (most recent call last):
 File "<string>", line 1, in <module>
 File "I:\Anaconda3\lib\multiprocessing\spawn.py", line 105, in spawn_main
 exitcode = _main(fd)
 File "I:\Anaconda3\lib\multiprocessing\spawn.py", line 115, in _main
 self = reduction.pickle.load(from_parent)
EOFError: Ran out of input

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /