如何使用MIDIUtil库而不引发导入错误?

2024-06-24 12:32:29 发布

您现在位置:Python中文网/ 问答频道 /正文

过去我已经让MIDIUtil在Mac上正常工作,没有导入错误。出于某种原因,它现在已停止工作并抛出导入错误,无论我如何尝试更改代码中的文件目录或模块名称:

ImportError: No module named midiutil

我正在尝试运行包中的“示例”文件:

#!/usr/bin/env python

from midiutil import MIDIFile

degrees  = [60, 62, 64, 65, 67, 69, 71, 72]  # MIDI note number
track    = 0
channel  = 0
time     = 0    # In beats
duration = 1    # In beats
tempo    = 60   # In BPM
volume   = 100  # 0-127, as per the MIDI standard

MyMIDI = MIDIFile(1)  # One track
MyMIDI.addTempo(track, time, tempo)

for i, pitch in enumerate(degrees):
    MyMIDI.addNote(track, channel, pitch, time + i, duration, volume)

with open("major-scale.mid", "wb") as output_file:
    MyMIDI.writeFile(output_file)

我已经阅读了一些关于此主题的堆栈溢出帖子,他们建议:

from midiutil.MidiFile import MIDIFile

以及:

from midiutil.MidiFile3 import MIDIFile

我似乎已经尝试了每一个选择,但肯定有一些我错过了

我是Python的初学者,一般来说都是编码的,所以提前感谢您的帮助


Tags: infromimporttime错误channeltrackmidi
1条回答
网友
1楼 · 发布于 2024-06-24 12:32:29

如果您在venv创建的虚拟环境中工作,则在升级python版本(并且从系统中删除以前的python版本)时可能会发生这种情况。升级python版本后,virtualenv仍将激活,不会出现错误,但实际上无法工作,因此如果脚本依赖于从virtualenv导入模块,它将找不到该模块

解决方案是使用 upgrade标志更新venv以使用当前的python版本。例如:python -v venv <name-of-venv> upgrade。升级MIDIUtil后,venv中的其他模块应能正常工作

相关问题 更多 >