【问题标题】:Cannot find reference 'midi' in '__init__.py'在“__init__.py”中找不到参考“midi”
【发布时间】:2015-02-24 07:51:22
【问题描述】:

Pygame.midi 无法被 PyCharm 识别。
我有 Python 2.7 的 pygame 版本 2.7
IDLE 似乎可以识别它,但 PyCharm 没有。这是为什么呢?
我正在尝试制作 DRUM vst, 但我还没有走远,因为出现以下错误:

Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/POm/NewtonIncVST.py", line 12, in <module>
reading = in_port.midi.read()
AttributeError: 'int' object has no attribute 'midi'

代码示例

import pygame
import pygame.midi

pygame.init()
pygame.midi.init()

in_port = pygame.midi.get_default_input_id()

port = pygame.midi.get_default_output_id()

reading = in_port.pygame.midi.read()
check = reading.midi.poll()

pygame.midi.quit()

谁能解释一下为什么 PyCharm 无法识别 pygame.midi

【问题讨论】:

  • 你必须展示一些代码。你想做什么?

标签: python pygame pycharm midi


【解决方案1】:

我发现Pygame.Midi需要portmidi,它预装了pygame,格式如下:

from pygame import pypm
pypm.Initialize()
#needed to initialize pygames compiled version of pyPortMidi

这似乎也是解释器以外的问题。

【讨论】:

    【解决方案2】:

    这应该是因为您的 intrepeter 版本与您的 IDLE 版本不同。例如,对于 Python 2.7.5 的解释器,它不会识别出这段代码在 IDLE 中对 2.7.9 版本有任何影响:

    IDLE 和 PyCharm:

    string = 'XXXuuu'
    string[:-3]
    

    结果:

    'XXX'
    

    PyCharm 结果:

    #Nothing, says that `string[:-3]` has no effect in the program
    

    因此,这是一个示例,说明当您使用错误的 intrepeter 时会发生什么。另一个解决方案是将我们的 PyCharm 更新到版本 4.0.3,如果你的解释器是相同的。如果仍然没有,请提交错误报告或测试以查看您的 intrepeter 是否有缺陷。希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 2018-06-30
      • 2020-07-19
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 2017-12-01
      相关资源
      最近更新 更多