Emisam / genome_update

A package for downloading genomes (.fna .gbff .gff) from NCBI assembly_summary. Uses yaml to store information about local genomes.
MIT License
4 stars 2 forks source link

cPickle.PicklingError #6

Open dpchris opened 7 years ago

dpchris commented 7 years ago

I installed genome_update with pip as showed in the README : pip install genome_update pip install genome_update --upgrade

but when I try to download genomes, I get this error \:

genome_update -g "Brucella" -p 8

_... Adding new isolate CMUL 031 to species: Brucella sp. Adding new isolate CMUL 035 to species: Brucella sp. Adding new isolate CMUL 034 to species: Brucella sp. Downloading jobs.... Traceback (most recent call last): File "/usr/local/bin/genome_update", line 11, in sys.exit(main()) File "/usr/local/lib/python2.7/dist-packages/genome_update/main.py", line 92, in main download(yaml, args.name, args.name, args.output, args.parallel) File "/usr/local/lib/python2.7/dist-packages/genome_update/main.py", line 102, in download newdict = dwon.download_jobs(parallel, job) File "/usr/local/lib/python2.7/dist-packages/genome_update/downloader.py", line 42, in download_jobs pool.map(self.download, jobs) File "/usr/lib/python2.7/multiprocessing/pool.py", line 251, in map return self.map_async(func, iterable, chunksize).get() File "/usr/lib/python2.7/multiprocessing/pool.py", line 567, in get raise self.value cPickle.PicklingError: Can't pickle <type 'instancemethod'>: attribute lookup builtin.instancemethod failed

same with genome_update -g "Brucella"

Emisam commented 7 years ago

Thanks for testing the software and providing information about bugs. Hopefully I will be able to fix this error soon.

I was able to reproduce the error in python 2.7. The reason we get this error is because in python 2.7 the multiprocessing module does not support pickling of instance methods. So I need to fix this by adding some extra code, but that will take a couple of days before I find the time to do it.

The multiprocessing module was reworked to support this in python 3.x, so a temporary solution is to create an environment on your machine for python 3.x and run the program from there.

I will update the issue when I've fixed so it works for 2.7 again. Best wishes

dpchris commented 7 years ago

thanks for the quick answer ! I will try with python 3.

Best whishes.


De : Emil Samuelsson [notifications@github.com] Envoyé : jeudi 8 juin 2017 12:46 À : Emisam/genome_update Cc : CHRISTIANY David; Author Objet : Re: [Emisam/genome_update] cPickle.PicklingError (#6)

Thanks for testing the software and providing information about bugs. Hopefully I will be able to fix this error soon.

I was able to reproduce the error in python 2.7. The reason we get this error is because in python 2.7 the multiprocessing module does not support pickling of instance methods. So I need to fix this by adding some extra code, but that will take a couple of days before I find the time to do it.

The multiprocessing module was reworked to support this in python 3.x, so a temporary solution is to create an environment on your machine for python 3.x and run the program from there.

I will update the issue when I've fixed so it works for 2.7 again. Best wishes

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/Emisam/genome_update/issues/6#issuecomment-307068103, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ASiDqSXizyk-QXP0pAZpKL-HlegX77ngks5sB9ECgaJpZM4Nz0_b.