4

mayaモジュールに関連付けられているすべてのモジュールであるmaya.cmdsモジュールを認識するようにEclipseIDEをセットアップしようとしています。次のコードは、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'

私はグーグルグループ「マヤの中のパイソン」でたくさんの検索をしました、そしてウェブ検索。私が見つけた最高のものは次のリンクでしたが、これは私の問題をまったく解決せず、最終的には同じ結果になりました。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 に答える