1

我是 Python 新手,所以我也许可以先学习基础知识……我是一名音乐家,热衷于学习如何将 Python 与音乐结合使用。

我为 Windows 10 安装了 Python 3.8 x64。然后我使用 pip 安装了 music21。

打开 Python Shell,输入import music21并得到这个:

    Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import music21
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import music21
  File "D:\Python\lib\site-packages\music21\__init__.py", line 170, in <module>
    from music21 import base
  File "D:\Python\lib\site-packages\music21\base.py", line 94, in <module>
    from music21 import common
  File "D:\Python\lib\site-packages\music21\common\__init__.py", line 39, in <module>
    from music21.common.parallel import *
  File "D:\Python\lib\site-packages\music21\common\parallel.py", line 19, in <module>
    from music21.ext.joblib import Parallel, delayed  # @UnresolvedImport # type: ignore
  File "D:\Python\lib\site-packages\music21\ext\joblib\__init__.py", line 119, in <module>
    from .parallel import Parallel
  File "D:\Python\lib\site-packages\music21\ext\joblib\parallel.py", line 32, in <module>
    from .externals.cloudpickle import dumps, loads
  File "D:\Python\lib\site-packages\music21\ext\joblib\externals\cloudpickle\__init__.py", line 3, in <module>
    from .cloudpickle import *
  File "D:\Python\lib\site-packages\music21\ext\joblib\externals\cloudpickle\cloudpickle.py", line 167, in <module>
    _cell_set_template_code = _make_cell_set_template_code()
  File "D:\Python\lib\site-packages\music21\ext\joblib\externals\cloudpickle\cloudpickle.py", line 148, in _make_cell_set_template_code
    return types.CodeType(
TypeError: an integer is required (got type bytes)

我找到了可以运行的示例代码,music21但如果出现错误,我将无法使用它。

希望有人可以提供帮助。抱歉,如果我是一个完整的 n00b。确实查看了其他问题,但没有找到或不理解答案。

4

2 回答 2

1

因此,从您的输出来看,似乎最有用的主要部分是文件TypeError: an integer is required (got type bytes)中的 _make_cell_set_template_code 函数D:\Python\lib\site-packages\music21\ext\joblib\externals\cloudpickle\cloudpickle.py。这个问题可能是 music21 与 Python 3.8 不兼容的问题。我正在阅读来自https://web.mit.edu/music21/的文档,它说 v.5 支持 Python 3.4-3.6,所以我会尝试使用其中一个版本并重新启动您为获得到上面的步骤。希望这可以帮助!

于 2019-12-15T23:37:09.840 回答
1

music21 v5 不支持 Python 3.8 -- 选择 3.7 或从 github 下载最新的 Git。

编辑:v5.7.2 现在支持 3.8

于 2019-12-15T23:52:22.280 回答