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__ =3D=3D "__main__":
q =3D Process(target=3Ddo_something,args=3D("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 =3D 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
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Thanks for the reply, Here's the code I tested for the debug: >print("executed")
but neither "Hello World" or "Executed" are displayed in the console which
Now the question, when to use Process/Multiprocess and when to use
Threading in Python?
marc nicole <mk1853387@gmail.com> wrote or quoted:[...]
Thanks for the reply, Here's the code I tested for the debug: >>print("executed")
but neither "Hello World" or "Executed" are displayed in the console which
It shouldn't spit out "Executed" 'cause there's a lowercase
"e" in the mix. Talk about sweating the small stuff!
That 'if __name__ == "__main__"' jazz? It's barking up the wrong
tree here, just muddying the waters. I'd 86 that clause for now.
In your start() function call, you're rockin' "do_something()",
but the actual function's defined as "do_Something()" with a
capital "S". Python's all about that case sensitivity.
Dropping that "exit(0)" bomb right after firing up the process?
That's like bailing on a gnarly wave before you even catch it.
It might pull the plug on the main process before the kid process
has a chance to strut its stuff.
Those "ghello" and "fhello" functions? They're just chillin'
there, not pulling their weight!
Hello,
I am using Python 2.7 on Windows 10
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
But getting the error at the call of Process().start():
pickle.PicklingError: Can't pickle <type 'module'>: it's not found as __builtin__.module
anybody could provide an alternative to call the function do_something()in
a separate thread ?
Sysop: | Tetrazocine |
---|---|
Location: | Melbourne, VIC, Australia |
Users: | 4 |
Nodes: | 8 (0 / 8) |
Uptime: | 215:09:23 |
Calls: | 73 |
Calls today: | 1 |
Files: | 21,500 |
Messages: | 73,905 |