OSX、win32、および win64 用に構築したアプリケーションに pyPortMidi を使用しようとしています。OSX と win32 で動作するようになりましたが、win64 で動作させるのに苦労しています。
pyPortMidi は、PortMidi という名前の C ライブラリのラッパーであり、バージョン 0.7 としてPortMidi ソース ダウンロードで、バージョン 0.9 としてJohn Harrison のサイトから入手できます。同じ障害モードで両方のバージョンを試しました。
最初に、X64 を対象とした MSVC++ 2008 Express を使用して PortMidi をビルドしました。付属のテスト プログラムは動作し、midi ポートと通信できるので、PortMidi ビルドは問題ないと思います。
次に、pyPortMidi をビルドしました。バージョン 0.7 では、インクルード ファイル (../win32 から ../pm_common に移動) の適切な場所を考慮して、setup.py ファイルを少し変更する必要があり、エラーなしでビルドされました。バージョン 0.7 は cython を使用して _pyportmidi.c をビルドしますが、バージョン 0.9 は pyrex を使用して同じことを行います。それを機能させるには、easy_install を使用してインストールされたバージョンの pyrex を使用する必要がありました。また、エラーなしでビルドされました。
ライブラリを Python にインポートすることはできますが、最初の呼び出しを行うとすぐに Python がクラッシュします。
>>> import pypm
>>> pypm.Initialize()
Problem signature:
Problem Event Name: APPCRASH
Application Name: python.exe
Application Version: 0.0.0.0
Application Timestamp: 4e70d55f
Fault Module Name: pypm.pyd
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 4f8383fc
Exception Code: c0000005
Exception Offset: 0000000000009000
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1033
Additional Information 1: 0f1f
Additional Information 2: 0f1f1099a7fb7a2294c21b52e8fe20f2
Additional Information 3: 07a8
Additional Information 4: 07a8c952d5efd7a04abd16111aad6ab0
X64でpyPortMidiを実行した人はいますか? この問題をデバッグする方法について何か提案はありますか?