1

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を実行した人はいますか? この問題をデバッグする方法について何か提案はありますか?

4

1 に答える 1

2

更新されたpypmモジュールはpygame.pypmとして入手できますhttp://www.lfd.uci.edu/~gohlke/pythonlibs/#pygameのwin-amd64-py2.7バイナリを使用すると、次のように機能します。

>>> from pygame import pypm
>>> pypm.Initialize()
于 2012-04-11T18:53:24.930 に答える