我正在尝试为我为OSX、win32和win64构建的应用程序使用pyPortMidi。我已经让它在OSX和win32上工作了,但我被困在win64上了。
pyPortMidi是一个名为PortMidi的C库的包装器,它可以在PortMidi source download版本0.7和John Harrison's site版本0.9中使用。我已经用相同的失败模式尝试了这两个版本。
首先,我使用针对X64的MSVC++ 2008Express构建了PortMidi。所包含的测试程序工作,并能够与midi端口通信,所以我认为PortMidi构建是很好的。
接下来,我构建了pyPortMidi。对于0.7版本,我必须稍微修改setup.py文件,以说明包含文件的正确位置(从../win32移动到../pm_common),并且它构建时没有错误。版本0.7使用cython构建_pyportmidi.c,而版本0.9使用pyrex做同样的事情;为了让它正常工作,我必须使用使用easy_install安装的pyrex版本。它也是没有错误地构建的。
我可以将库导入到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?关于如何调试这个问题,有什么建议吗?
发布于 2012-04-12 02:53:25
更新的pypm模块以pygame.pypm的形式提供。使用http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame中的win-amd64-py2.7二进制文件,可以实现以下功能:
>>> from pygame import pypm
>>> pypm.Initialize()https://stackoverflow.com/questions/10110252
复制相似问题