2013年8月14日水曜日

[Python] モジュールのサーチパス表示

Python モジュールのサーチパスの表示方法 ( 以下は、Mac OS X での実行結果

>>> import sys
>>> print sys.path

['', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', '/Library/Python/2.7/site-packages']

2013年8月6日火曜日

[python] COMコンポーネントを利用してみる

今回は、WindowsにてpythonでCOMコンポーネントを利用してみます。
pythonは既にインストール済みとして、

まず、必要なライブラリをインストールします。

http://sourceforge.net/projects/pywin32/

からインストールされているpythonのバージョンのインストーラーをダウンロードして、インストール。
これで、[python-install-dir]\Lib\site-packages にライブラリがインストールされます。


次に自分の環境にどのようなCOMコンポーネントがインストールされているか確認する。
Windows SDKをインストールして。以下を管理者権限で実行。

regsvr32 "c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\IViewers.Dll"

そして、Oleview.exeを管理者権限で実行。ちなみに自分の環境では、C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin に当該プログラムがインストールされていた。

ツリーの「Type Libraries」で各COMコンポーネントのインタフェースを確認することができる。


次に、各タイプライブラリのpython用ソースを生成する。win32com clientのインストールディレクトリに移動して、
cd C:\usr\local\python\2_7_5\Lib\site-packages\win32com\client
以下を実行
python makepy.py 

すると利用可能なタイプライブラリの一覧が表示されるので。ソースを生成したいライブラリを選択して「OK」を押下。

 ここでは、iTunesを選択してみた。生成したタイプライブラリの情報は、

python make.py -i "iTunes 1.13 Type Library"

で確認することができる。

さてようやくサンプルコードですが。。。

>>> import win32com.client
>>> foo = win32com.client.Dispatch("iTunes.Application")
>>> foo.Quit()

ウィンドウを最小化したり、音量を変更したりできるみたいですが今日はここまで



-Reference-
Quick Start to Client side COM and Python