2012-04-11 52 views
1

我正在尝试将pyPortMidi用于我为OSX,win32和win64构建的应用程序。我已经得到它在OSX和win32上工作,但我坚持试图让它在win64上工作。有没有办法让pyPortMidi在Win7-64上工作?

pyPortMidi是一个名为PortMidi的C库的包装,它可用于PortMidi source download版本0.7和John Harrison's site版本0.9。我已经用相同的失败模式尝试过两个版本。

首先,我使用MSVC++ 2008 Express针对X64构建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上运行?有关如何调试此问题的任何建议?

+0

你可能想看看这个问题[这里](http://stackoverflow.com/questions/27737264/installing-pygame-on -64-bit-windows-7-and-64-bit-python-2-7)来解决这个问题。 – tomcat23 2016-07-07 02:39:02

回答

2

更新后的pypm模块可用作pygame.pypm。从http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame利用双赢的AMD64的py2.7二进制以下工作:

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

工作。为了满足我的好奇心,我必须看看改变了什么。感谢指针! – LMO 2012-04-12 07:26:57

+0

我希望更多的人找到答案。 Pygame是一个简单易用的下载工具,可以将pyportmidi的测试脚本(从它的下载,而不是pygame的脚本)更改为这一行,从而立即开始工作。这是将一些MIDI数据转化为python最简单的解决方案,并且非常适合我的需求。 – tomcat23 2016-05-25 02:42:09

相关问题