Message 1 of 2
Multiprocessing/Multithreading Support in Motionbuilder
Not applicable
03-27-2015
10:00 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I tried to test a "Hello world" Multiprocessing/Multithreading script in Motionbuilder
I got errors
and new Motionbuilder Window has been opened
Traceback (most recent call last):
File "C:/Users/Wahb/SkyDrive/Documents/x.py", line 23, in <module>
p.start()
File "C:\Program Files\Autodesk\MotionBuilder 2015\bin\x64\python27.zip\multiprocessing\process.py", line 130, in start
File "C:\Program Files\Autodesk\MotionBuilder 2015\bin\x64\python27.zip\multiprocessing\forking.py", line 271, in __init__
File "C:\Program Files\Autodesk\MotionBuilder 2015\bin\x64\python27.zip\multiprocessing\forking.py", line 193, in dump
File "C:\Program Files\Autodesk\MotionBuilder 2015\bin\x64\python27.zip\pickle.py", line 224, in dump
File "C:\Program Files\Autodesk\MotionBuilder 2015\bin\x64\python27.zip\pickle.py", line 331, in save
File "C:\Program Files\Autodesk\MotionBuilder 2015\bin\x64\python27.zip\pickle.py", line 419, in save_reduce
File "C:\Program Files\Autodesk\MotionBuilder 2015\bin\x64\python27.zip\pickle.py", line 286, in save
File "C:\Program Files\Autodesk\MotionBuilder 2015\bin\x64\python27.zip\pickle.py", line 649, in save_dict
File "C:\Program Files\Autodesk\MotionBuilder 2015\bin\x64\python27.zip\pickle.py", line 681, in _batch_setitems
File "C:\Program Files\Autodesk\MotionBuilder 2015\bin\x64\python27.zip\pickle.py", line 286, in save
File "C:\Program Files\Autodesk\MotionBuilder 2015\bin\x64\python27.zip\pickle.py", line 748, in save_global
pickle.PicklingError: Can't pickle <function rand_string at 0x000000001AF787B8>: it's not found as __main__.rand_string
>>>
this is the code that i was trying to execute
import multiprocessing as mp
import random
import string
# Define an output queue
output = mp.Queue()
# define a example function
def rand_string(length, output):
""" Generates a random string of numbers, lower- and uppercase chars. """
rand_str = ''.join(random.choice(
string.ascii_lowercase
+ string.ascii_uppercase
+ string.digits)
for i in range(length))
output.put(rand_str)
# Setup a list of processes that we want to run
processes = [mp.Process(target=rand_string, args=(5, output)) for x in range(4)]
# Run processes
for p in processes:
p.start()
# Exit the completed processes
for p in processes:
p.join()
# Get process results from the output queue
results = [output.get() for p in processes]
print(results)
i tried simpler code with "print "Hello"" and i got the same error