我从http://www.lfd.uci.edu/~gohlke/pythonlibs/上提供的 .whl 安装了rtmidi_python for Python 3.4.2,导入工作正常,但只要我调用“rtmidi_python.MidiIn()”,我得到一个TypeError如下:
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import rtmidi_python
>>> rtmidi_python.MidiIn()
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
rtmidi_python.MidiIn()
File "rtmidi_python.pyx", line 72, in rtmidi_python.MidiIn.__cinit__ (rtmidi_python.cpp:1440)
TypeError: expected bytes, str found
据我了解,经过一些研究,这意味着包装本身或其构建中存在错误,我无能为力,但我可能错了。任何人都可以确认吗?
我使用3.4.2,因为这是当前版本的Blender使用的Python版本。我想在Blender游戏引擎中使用rtmidi-python。 我目前正在使用Windows 7 32位,并使用 .whl 来安装软件包,因为我没有必要的C ++编译器来进行常规的pip安装。
为了比较,我之前安装了rtmidi-python for 3.5.1,也来自上面链接上提供的足够的 .whl ,并且命令工作得很好。
如果缺少任何必要的信息,请随时提出。如果答案是作为评论发表而且我不赞成它,请提前致谢。
答案 0 :(得分:0)
虽然不是一个完美的解决方案,但这可以通过sehqlr在这里描述的方式修复...... https://github.com/superquadratic/rtmidi-python/issues/17
...通过这样调用 MidiIn():
>>> rtmidi_python.MidiIn(b'in')