どうも、ぼくです。
今回はBlenderのPythonで使えるモジュールを調べてみることにします。
やっていることはBlenderっぽくないですが、「Pythonの基本的なところを学習する環境としても使える」ということをわかってもらえるといいんじゃないでしょうか。
以下のBlog記事で紹介されているものをBlender上のPython Interactive console上で、というわけですね。
では。
今回はBlenderのPythonで使えるモジュールを調べてみることにします。
やっていることはBlenderっぽくないですが、「Pythonの基本的なところを学習する環境としても使える」ということをわかってもらえるといいんじゃないでしょうか。
以下のBlog記事で紹介されているものをBlender上のPython Interactive console上で、というわけですね。
ロード済みモジュールを確認:
ロード済みモジュールを確認するには、 sys.modules.keys() を実行します。
>>> import sys
>>> sys.modules.key()
利用可能なモジュールを確認:
Blenderに同梱されているPythonのライブラリは、「標準ライブラリ(流石にTKはありません)」+αです。これを一覧で確認します。
>>> buf=[]
>>> for m in pkgutil.iter_modules():
... buf.append(m[1])
...
>>> buf.sort()
>>> buf
これで確認してみると…。xmlrpcとかnumpy…えっ?numpy???
「何をするものか」を確認:
さて、一覧が取得できても、個々に「何をするもの」かまでは名前からだけではわかりません。そこで help() 関数。 以下のように実行してみます。
>>> import xmlrpc
>>> help(xmlrpc)
Help on package xmlrpc:
NAME
xmlrpc - # This directory is a Python package.
PACKAGE CONTENTS
client
server
FILE
/Applications/Blender/blender.app/Contents/Resources/2.74/python/lib/python3.4/xmlrpc/__init__.py
パッケージやモジュール、関数に help() 関数を使ってみると説明が表示されるので良さげです。
[Add-on]自分で作ったAdd-onに追加のモジュールが使えるかどうかで機能を変える:
Pythonは自身で書いた .py ファイルをモジュールとして使用することが可能です。Add-onで、特定のパッケージまたはモジュールがインポート可能な時のみ特定機能を使用可能にする、というのを submitwordpress.py で使っていたりします。
kanaflg = False
# import romankanatbl as extention
try:
import romakanatbl.romakanatbl as rk
kanaflg = True
print("[SubmitWordPress] romankana extention is available.")
except:
print("[SubmitWordPress] no romankana extention.")
try文の中で import 文を実行して登録できるかをやっているわけですね。
では。