我正在尝试设置Eclipse IDE以识别 maya.cmds 模块,这是与 maya 模块关联的所有模块。以下代码是在Eclipse和Maya的脚本编辑器中运行的测试。
import maya
print 'maya:\n', dir(maya)
from maya import cmds
print 'cmds:\n', len(dir(cmds)) # too many to print
print 'sphere: ', cmds.sphere
在Maya的脚本编辑器中,代码导致
maya:
['OpenMaya', '_OpenMaya', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'app', 'cmds', 'mel', 'standalone', 'stringTable', 'utils']
cmds:
3190
sphere: <built-in method sphere of module object at 0x0000000019F0EEE8>
在Eclipse中,代码导致
maya:
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
cmds:
6
sphere:
Traceback (most recent call last):
AttributeError: 'module' object has no attribute 'sphere'
我已经在google群组“maya内部的python”和网络搜索中进行了大量搜索。我发现的最好的是以下链接,但这根本没有解决我的问题,最终给出了相同的结果。 http://www.luma-pictures.com/tools/pymel/docs/1.0/eclipse.html
我读过我应该在Eclipse中设置我的环境路径,而不是我的机器,我也读过相反的意见。我应该在Eclipse,Windows或两者中设置哪些环境变量?
答案 0 :(得分:3)
解决方案是导入maya.standalone并初始化它。 这使您可以访问其中的maya包和模块。
import maya.standalone
maya.standalone.initialize()
import maya
print 'maya:\n', dir(maya)
from maya import cmds
print 'cmds:\n', len(dir(cmds)) # too many to print
print 'sphere: ', cmds.sphere
输出:
maya:
['__builtins__', '__doc__', '__file__', '__name__', '__package__',
'__path__', 'app', 'cmds', 'mel', 'standalone', 'stringTable', 'test', 'utils']
cmds:
2945
sphere: <built-in method sphere of module object at 0xf33948>
答案 1 :(得分:2)
如果你想要,可以直接在它上面设置eclipse运行(调试)maya(当然,使用独立)。
如果你进入python解释器,你可以添加一个mayapy解释器。
按new
,写下您想要的新内容:D,
解释器可执行文件将是你的maya路径)..\bin\mayapi.exe
(例如:D:\Program Files\Autodesk\Maya2013\bin\mayapi.exe
)
包括您认为需要的所有模块,并完成。 现在你可以在eclipse中使用maya解释器,这意味着使用maya standalone,你也可以运行你的脚本(如果我需要做类似的递归任务,我喜欢用这种方式;))。