【问题标题】:How do I use the MIDIUtil library without raising an Import Error?如何在不引发导入错误的情况下使用 MIDIUtil 库?
【发布时间】:2020-12-01 01:45:55
【问题描述】:

我过去已经让 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 和一般编码的初学者,所以提前感谢您的帮助!

【问题讨论】:

  • 包安装成功了吗?您是否使用了正确的 Python 安装?
  • 我会尝试重新安装该软件包。 pypi.org/project/MIDIUtil
  • @AMC,是的,据我所知。我有最新版本的 pip 并得到了这个:pip install MIDIutil Requirement already satisfied: MIDIutil in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (1.2.1)
  • @RobertHarvey 我已经重新安装了最新版本的库,但没有任何变化。
  • @CallumMurray 正在使用相同的 Python 安装执行脚本吗?

标签: python python-import importerror midi


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-12-05
    • 2020-10-19
    • 2013-04-04
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 2013-10-12
    • 2022-01-16
    • 2015-08-01
    相关资源
    最近更新 更多