2012/04/25

外部Pythonを使用する際の注意

SIのバージョンを複数インストールしている状態で、外部Pythonを使用しているときに起こる問題です。

SIを起動するとPythonがらみで、ある問題が発生することがあります。

# ERROR : Traceback (most recent call last):
#   File "<:script 2="" block="">", line 29, in XSILoadPlugin
#     in_reg.RegisterEvent("UpdateRigProxyHierarchy",C.siOnEndCommand)
#   File "C:\Python27\lib\site-packages\win32com\client\__init__.py",line 170, in __getattr__
#     raise AttributeError(a)
# AttributeError: siOnEndCommand
#  - [line 28 in C:\Program Files\Autodesk\Softimage 2013\Addons\CrowdFX\Application\Plugins\CrowdFX_Plugin.py]

こちらは、SI2010を立ち上げた後、SI2013を立ち上げたときのエラーメッセージです。

新機能として搭載されたCrowdFXですが、PluginがPythonで書かれていることもあり、Pythonが正しい状態で無いと、エラーでメニューが表示されないことが起きてしまいます。

その場合、外部Pythonの下記のフォルダを消去すると問題が解消します。

C:\Python27\Lib\site-packages\win32com\gen_py
(Pythonのバージョンが2.7の場合です)

この情報はこちらを参照してください。

Errors after re-installation
http://softimage.wiki.softimage.com/index.php?title=Python_(XSISDK)&redirect=no

SIにインストールされた、Pythonを使う際、問題は出ないのですが、ScriptのPreferenceの

Use Python Installed with Softimage (Windows Only)

のチェックがオフの場合、SIを初めて立ち上げたときのみ、先程のフォルダにSIのPythonにおける定数のキャッシュを作成します。

from siutils import C # win32com.client.constants
C.siNullPrimType

こんな感じでsiTypeの定数を使う時のキャッシュですね。
このフォルダは、無くても動作するようですので、消してしまって大丈夫です。
このキャッシュを作る仕様は、どうやら、SI2013より、SI2010のほうが強いみたいで、2010を立ち上げると、2010用になり、その後2013を立ち上げても、ファイルが存在するので、更新はしないようです。
ですので、エラーの内容は、定数の値が取得出来ないぜ。と言っているようです。

サーバーなどで、Pythonを共有している会社さんは、注意が必要ですね。

0 件のコメント:

Perforce: 複数のワークスペースを更新するバッチ

batを叩けば全部更新。 @echo off set P4PORT=x.x.x.x:xxxx set P4USER=user set P4PASSWD=password echo %P4PORT% echo %P4USER% echo %P4PASSWD% echo %P4PAS...