lopq icon indicating copy to clipboard operation
lopq copied to clipboard

When I run the program in windows,i have an error

Open FoolishBrown opened this issue 7 years ago • 7 comments

PicklingError: Can't pickle <function func_wrap at 0x000000000A976C18>: it's not found as lopq.utils.func_wrap

and when i fixed this problem i get Traceback (most recent call last):

File "", line 1, in runfile('C:/Users/Saber/Desktop/lopqtest.py', wdir='C:/Users/Saber/Desktop')

File "C:\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 699, in runfile execfile(filename, namespace)

File "C:\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 74, in execfile exec(compile(scripttext, filename, 'exec'), glob, loc)

File "C:/Users/Saber/Desktop/lopqtest.py", line 32, in searcher.add_data(data)

File "C:\Anaconda2\lib\site-packages\lopq\search.py", line 98, in add_data codes = compute_codes_parallel(data, self.model, num_procs)

File "C:\Anaconda2\lib\site-packages\lopq\utils.py", line 182, in compute_codes_parallel codes = parmap(compute_partition, partitions, num_procs)

File "C:\Anaconda2\lib\site-packages\lopq\utils.py", line 136, in parmap p.start()

File "C:\Anaconda2\lib\multiprocessing\process.py", line 130, in start self._popen = Popen(self)

File "C:\Anaconda2\lib\multiprocessing\forking.py", line 277, in init dump(process_obj, to_child, HIGHEST_PROTOCOL)

File "C:\Anaconda2\lib\multiprocessing\forking.py", line 199, in dump ForkingPickler(file, protocol).dump(obj)

File "C:\Anaconda2\lib\pickle.py", line 224, in dump self.save(obj)

File "C:\Anaconda2\lib\pickle.py", line 331, in save self.save_reduce(obj=obj, *rv)

File "C:\Anaconda2\lib\pickle.py", line 425, in save_reduce save(state)

File "C:\Anaconda2\lib\pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self

File "C:\Anaconda2\lib\pickle.py", line 655, in save_dict self._batch_setitems(obj.iteritems())

File "C:\Anaconda2\lib\pickle.py", line 687, in _batch_setitems save(v)

File "C:\Anaconda2\lib\pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self

File "C:\Anaconda2\lib\pickle.py", line 568, in save_tuple save(element)

File "C:\Anaconda2\lib\pickle.py", line 331, in save self.save_reduce(obj=obj, *rv)

File "C:\Anaconda2\lib\pickle.py", line 425, in save_reduce save(state)

File "C:\Anaconda2\lib\pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self

File "C:\Anaconda2\lib\pickle.py", line 655, in save_dict self._batch_setitems(obj.iteritems())

File "C:\Anaconda2\lib\pickle.py", line 687, in _batch_setitems save(v)

File "C:\Anaconda2\lib\pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self

File "C:\Anaconda2\lib\pickle.py", line 554, in save_tuple save(element)

File "C:\Anaconda2\lib\pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self

File "C:\Anaconda2\lib\pickle.py", line 606, in save_list self._batch_appends(iter(obj))

File "C:\Anaconda2\lib\pickle.py", line 639, in _batch_appends save(x)

File "C:\Anaconda2\lib\pickle.py", line 331, in save self.save_reduce(obj=obj, *rv)

File "C:\Anaconda2\lib\pickle.py", line 425, in save_reduce save(state)

File "C:\Anaconda2\lib\pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self

File "C:\Anaconda2\lib\pickle.py", line 568, in save_tuple save(element)

File "C:\Anaconda2\lib\pickle.py", line 286, in save f(self, obj) # Call unbound method with explicit self

File "C:\Anaconda2\lib\pickle.py", line 492, in save_string self.write(BINSTRING + pack("<i", n) + obj)

IOError: [Errno 32] Broken pipe

FoolishBrown avatar Dec 14 '16 05:12 FoolishBrown

I'm afraid I cannot help you - I have no idea what code you are trying to run.

One idea is to run python example.py from within the scripts/ directory in this repo. That runs a very basic test of model fitting.

pumpikano avatar Dec 14 '16 22:12 pumpikano

thank you for you answer.when I run python example.py ,I also have a problem :PicklingError: Can't pickle <function func_wrap at 0x000000000AAF63C8>: it's not found as lopq.utils.func_wrap.what's the reason for this issue.

FoolishBrown avatar Feb 28 '17 13:02 FoolishBrown

This is very strange because there is no pickling involved anywhere in example.py. I am not familiar with Python on windows, but perhaps you should try test whether your Anaconda installation is correct?

pumpikano avatar Feb 28 '17 17:02 pumpikano

Thank you for you answer.I can confirm the anaconda installation is no problem.I found the function named 'func_warp' is a nested function in the function 'parmap' in utils.py.Whether the reason is the different handling mechanism between the Win and Linux? I guess...

FoolishBrown avatar Mar 01 '17 13:03 FoolishBrown

I just met up with the same problem, did u figure it out?

Hugh0120 avatar Nov 10 '17 08:11 Hugh0120

@Hugh0120 did you solved the issue? I am facing the same problem? thanks

anas-899 avatar Oct 16 '19 21:10 anas-899

@Hugh0120 did you solved the issue? I am facing the same problem? thanks

well, actually I didn't fix the issue and finally used another library called FAISS, hope that could help.

Hugh0120 avatar Nov 04 '19 11:11 Hugh0120