有没有办法让pyPortMidi在Win7-64上运行?

时间:2012-04-11 16:41:02

标签: python pyportmidi

我正在尝试将pyPortMidi用于我为OSX,win32和win64构建的应用程序。我已经把它用于OSX和win32,但是我很难尝试让它在win64上工作。

pyPortMidi是名为PortMidi的C库的包装器,它可以在PortMidi source download版本0.7和John Harrison's site版本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

有没有人在X64上运行pyPortMidi?有关如何调试此问题的任何建议吗?

1 个答案:

答案 0 :(得分:2)

更新的pypm模块可用作pygame.pypm。使用http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame中的win-amd64-py2.7二进制文件进行以下工作:

>>> from pygame import pypm
>>> pypm.Initialize()