4

我正在尝试设置 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'

我在谷歌组“python inside maya”和网络搜索上做了很多搜索。我发现的最好的是以下链接,但这根本没有解决我的问题,最终给出了相同的结果。http://www.luma-pictures.com/tools/pymel/docs/1.0/eclipse.html

我读过我应该在 Eclipse 中设置我的环境路径,而不是我的机器,我也读过相反的意见。我应该在 Eclipse、Windows 或两者中设置什么环境变量?

4

2 回答 2

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>
于 2011-02-03T01:09:39.663 回答
2

如果您愿意,您可以设置 eclipse 直接在其上运行(调试)maya(当然使用独立的)。

如果你使用 python 解释器,你可以添加一个 mayapy 解释器。按下new,写下你想要的新的:D,解释器可执行文件将是你的 Maya 路径)..\bin\mayapi.exe (例如D:\Program Files\Autodesk\Maya2013\bin\mayapi.exe:)

包括您认为需要并完成的所有模块。现在您可以在 Eclipse 中使用 Maya 解释器,这意味着使用独立的 Maya,您也可以运行您的脚本(如果我需要执行类似的递归任务,我喜欢使用这种方式;))。

于 2012-11-27T03:29:07.130 回答