Sujet : RE: [Tutor] Getting a Process.start() error pickle.PicklingError: Can't pickle <type 'module'>: it's not found as __builtin__.module with Python 2.7
De : <avi.e.gross (at) *nospam* gmail.com>
Groupes : comp.lang.pythonDate : 04. Sep 2024, 06:19:12
Autres entêtes
Message-ID : <mailman.32.1725427155.2917.python-list@python.org>
References : 1 2 3
User-Agent : Microsoft Outlook 16.0
Unfortunately, Alan, even though 2.7 was considered pickled, people keep
taking it back out of the bottle and wondering why it does not work so well!
There are companies like Microsoft and Samsung that let people know their OS
on their devices will no longer be supported with updates and some apps may
no longer work if downloaded. And, yet, I bet for years afterwards, people
will refuse to upgrade because they don't want to replace equipment or even
learn a new slightly different interface.
Having said that, I understand many people are stuck for various reasons and
are required to use whatever version is officially allowed. For some
questions, answers may still be provided. There are some workarounds or even
newer packages designed to do what is not otherwise available.
But many of us here may not be answering the questions as we have no reason
to be able to access the old software or interest.
-----Original Message-----
From: Tutor <tutor-bounces+avi.e.gross=
gmail.com@python.org> On Behalf Of
Alan Gauld via Tutor
Sent: Tuesday, September 3, 2024 4:41 AM
To:
tutor@python.orgCc:
python-list@python.orgSubject: Re: [Tutor] Getting a Process.start() error pickle.PicklingError:
Can't pickle <type 'module'>: it's not found as __builtin__.module with
Python 2.7
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 GAuthor of the Learn to Program web sitehttp://www.alan-g.me.uk/http://www.amazon.com/author/alan_gauldFollow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos_______________________________________________
Tutor maillist -
Tutor@python.orgTo unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor