我正在尝试将 pyPortMidi 用于我为 OSX、win32 和 win64 构建的应用程序。我已经让它在 OSX 和 win32 上工作,但我一直试图让它在 win64 上工作。
pyPortMidi 是一个名为 PortMidi 的 C 库的包装器,可从PortMidi 源代码下载0.7 版和John Harrison 的网站下载0.9 版。我已经尝试了具有相同故障模式的两个版本。
首先,我使用面向 X64 的 MSVC++ 2008 Express 构建了 PortMidi。包含的测试程序可以工作并且能够与midi端口通信,所以我认为PortMidi构建很好。
接下来我构建了 pyPortMidi。对于 0.7 版,我不得不稍微修改 setup.py 文件以说明包含文件的正确位置(从 ../win32 移动到 ../pm_common)并且它构建时没有错误。虽然 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
有没有人让 pyPortMidi 在 X64 上运行?关于如何调试此问题的任何建议?