Python for Windows

comtypes

nvdajp のための実験。

http://starship.python.net/crew/theller/comtypes/

c:\work>python
Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from comtypes.client import CreateObject
>>> ie = CreateObject("InternetExplorer.Application")
# Generating comtypes.gen._EAB22AC0_30C1_11CF_A7EB_0000C05BAE0B_0_1_1
# Generating comtypes.gen._00020430_0000_0000_C000_000000000046_0_2_0
# Generating comtypes.gen.stdole
# Generating comtypes.gen.SHDocVw
>>> ie.Visible = True
>>> dir(ie)
['AddRef', 'AddressBar', 'Application', 'Busy', 'ClientToWindow', 'Container', '
Document', 'ExecWB', 'FullName', 'FullScreen', 'GetIDsOfNames', 'GetProperty', '
GetTypeInfo', 'GetTypeInfoCount', 'GoBack', 'GoForward', 'GoHome', 'GoSearch', '
HWND', 'Height', 'Invoke', 'Left', 'LocationName', 'LocationURL', 'MenuBar', 'Na
me', 'Navigate', 'Navigate2', 'Offline', 'Parent', 'Path', 'PutProperty', 'Query
Interface', 'QueryStatusWB', 'Quit', 'ReadyState', 'Refresh', 'Refresh2', 'Regis
terAsBrowser', 'RegisterAsDropTarget', 'Release', 'Resizable', 'ShowBrowserBar',
...

file write

Win32 版と cygwin 版の比較。

Windows 環境における file.write で改行コードはどう自動付与されるのか?

どうやら "\n" を Win32 版では CR-LF と扱い、cygwin 版では LF と扱っているようだ。

以下、Windows の Python 2.5 で。

from __future__ import with_statement
with open("_testfile1", "w") as f:
    f.write("line1")
    f.write("line2")
with open("_testfile2", "w") as f:
    f.write("line1\n")
    f.write("line2\n")
with open("_testfile3", "w") as f:
    f.write("line1\r\n")
    f.write("line2\r\n")

cygwin の Python コマンドで:

$ python filetest.py

$ od -c _testfile1
0000000   l   i   n   e   1   l   i   n   e   2

$ od -c _testfile2
0000000   l   i   n   e   1  \n   l   i   n   e   2  \n

$ od -c _testfile3
0000000   l   i   n   e   1  \r  \n   l   i   n   e   2  \r  \n

次に Win32 の Python で python filetest.py を実行し、cygwin の od で確認すると、挙動がちがう。。

$ od -c _testfile1
0000000   l   i   n   e   1   l   i   n   e   2

$ od -c _testfile2
0000000   l   i   n   e   1  \r  \n   l   i   n   e   2  \r  \n

$ od -c _testfile3
0000000   l   i   n   e   1  \r  \r  \n   l   i   n   e   2  \r  \r  \n

Python 2.6

Windows XP (SP3) 環境における Python のバイナリパッケージ

C:\>python -V
Python 2.6
  • py2exe-0.6.9.win32-py2.6.exe : 成功
  • PIL-1.1.6.win32-py2.6.exe : 成功
  • numpy-1.3.0-win32-superpack-python2.6.exe : 失敗
    • "option /arch not understood: only native, nosse, sse2 and sse3 are valid."

未解決。

クリップボード

since 2011-12-02

クリップボードの内容が変更されたら何かをするプログラム:

ちなみに .NET だとこんな感じ:

py2exe

since 2011-12-02

http://www.py2exe.org/index.cgi/Tutorial

py2exe 環境では

__file__

は使えない。

hasattr(sys, 'frozen') でチェックせよという話。

http://www.py2exe.org/index.cgi/Py2exeEnvironment

http://www.py2exe.org/index.cgi/WhereAmI

Speech API

since 2011-12-03

http://metaspogst.blogspot.jp/2010/10/panda-171-and-speech-recognition-with.html

Microsoft Speech API で音声認識。

またしても ActiveState のレシピ:

http://code.activestate.com/recipes/93025-speech-recognition-in-windows-using-the-ms-speech-/

そこからリンクをたどって:

http://www.surguy.net/articles/speechrecognition.xml

speech.zip に入っている SpeechGui.py を Windows 7 SP1 x64 で動かしてみる。

コントロールパネルの「音声認識のプロパティ」によると、入っているエンジンは

「Windows用Microsoft音声認識エンジン8.0(日本語-日本)」

である。

Python 2.7.2 (x86), Python 2.7 comtypes-0.6.2, pywin32-216 が入っている。

事前に COM のライブラリを作っておく必要がある。

  • スタートメニュー - すべてのプログラム - Python 2.7 - PythonWin
  • Tools - Com Makepy Utility
  • Select Library で Microsoft Speech Object Library 5.4 を選択。
  • C:\Python27\lib\site-package\win32com\gen_py\C866…….py ファイルが作られる。
    • nvda をビルドするときに source/comInterfaces に作られるファイルと似ているが同じではない。

この状態でコマンドプロンプトで python SpeechGui.py が動く。

日本語は?

Windows 8 は Haruka Desktop がこのままで動く。(2013年6月12日)

Windows 7 の場合は MS Speech Platform (x86) の Haruka が入っていれば

self.speaker = win32com.client.Dispatch("SAPI.SpVoice")

という部分を

self.speaker = win32com.client.Dispatch("Speech.SpVoice")

にすればよい。

python_windows.txt · 最終更新: 2013/06/12 21:51 by Takuya Nishimoto
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0