前言
mp3play 是一个仅适用于 Python 2的库。由于代码简单,功能单一,又着实好用,所以我就打算尝试略略修改一下源代码,使其可在 Python 3调用。本文是一个记录。
1 查看 PyPI
mp3play module 在 PyPI 上的主页很简单,内容也很少。
这么一个停更的库还需要学习吗?没办法,简单好用。
先安装 mp3play module 到 Python 2: pip install mp3play
这是可正常调用的。
查看源文件(以我路径为例):C:\Python27\Lib\site-packages\mp3play
再安装 mp3play module 到 Python 3: pip install mp3play
查看源文件:… \Lib\site-packages\mp3play 这个文件夹里的两个脚本是后面操作的目标。
2 修改源代码
使用 2to3.py 进行代码转换(略)。
转换结果就是 init.py 并无转换提示,反倒是另一脚本 windows.py 出现了提示,所以仅需对该文件修改即可。
针对提示进行修改一:
print 'Error %s for "%s": %s' % (str(err), txt, buf)
改成 print(…)保存后,尝试
import mp3play
,报错。这里未能抓图。修改二:原代码
errorcode = self.w32mci(str(command), buffer, 254, 0)
,修改后是两行:
command = str(command).encode("ascii") # ascii 码可以,utf-8 也可以,总之需要编码
error_code = self.w32mci(command, buffer, 254, 0)
6.保存文件后,尝试 import mp3play
,完美!