[Tutor] Getting a Process.start() error pickle.PicklingError: Can't pickle <type 'module'>: it's not found as __builtin__.module with Python 2.7

Alan Gauld alan.gauld at yahoo.co.uk
Tue Sep 3 04:41:15 EDT 2024


On 02/09/2024 15:00, marc nicole via Python-list wrote:
> Hello,
> 
> I am using Python 2.7 on Windows 10 

Others have pointed out that 2.7 is unsupported and has
been for many years now. Its also inferior in most
respects including its error reporting.
If possible you should upgrade to 3.X

> from multiprocessing import Process
> def do_something(text):
>     print(text)
> if __name__ == "__main__":
>     q = Process(target=do_something,args=("somecmd") )
>     q.start()
>     # following code should execute right after the q.start() call 

So what does happen? If you put a print statement here does it execute
before or after the error message? It might make things easier to
debug(clearer error traceback) if you put the code to create the thread
into a separate function?

def do_Something(text)...

def start(fn):
   q = Process....
   q.start()

if __name_....
   start(do_something)
   print('Something here')


> But getting the error at the call of Process().start():
> pickle.PicklingError: Can't pickle <type 'module'>: it's not found as
> __builtin__.module

But please show us the full error trace even if its not much.

Also check your module naming, is there a possibility
you've named your file do_something.py or similar?
(I'm guessing the function is what is being pickled?)

> anybody could provide an alternative to call the function do_something() in
> a separate thread ?

Why not just use the Threading module?
If it's as simple as just running something in a
thread multiprocessing is probably not needed.

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos





More information about the Tutor mailing list