I found a weird Maya Python plug-in behavior yesterday.
When I make a plug-in like this,
class ClassD(object):
pass
def initializePlugin(mobject):
print ClassD.__module__
def uninitializePlugin(mobject):
pass
and load it, it prints out
__builtin__
How come a method is defined in the built in module?
It means you cannot use global declaration.
You need to either import the plug-in module inside the code like,
import pyCommandPort
pyCommandPort.someattribute = somevalue
or need to separate the code from the plug-in file and import it.
The globals() returns the right dictionary, and the class is not
in the builtin module. Looks Maya is doing some complicated things.
No comments:
Post a Comment