在Ableton Live中调试Python

14 投票
6 回答
5767 浏览
提问于 2025-04-16 06:05

我怎么才能在Ableton Live中查看我的Python MIDI远程脚本的错误呢?我在网上看到过提到一个隐藏的Python控制台的链接,但没有找到关于怎么打开它的说明,也不知道它是否能帮到我!

现在我只能输入代码,重新加载脚本,然后看看会发生什么。如果什么都没发生,那就说明出错了。这过程真是太麻烦了……

编辑:我还想补充一下,Log.txt文件里也没有什么有用的信息,尽管这个文件是有在更新的。

6 个回答

4

为了让大家都能明白:在Mac OS X 10.9系统上,Log.txt文件的位置是

/Users/-用户名-/Library/Preferences/Ableton/Live 9.1/

这个Live 9.1的文件夹可能会因为不同版本的Live而有所不同。

注意,Library文件夹是隐藏的。我花了一段时间才弄明白这一点。想要轻松找到它,可以在Finder中点击“前往”菜单,然后按住Alt键,Library文件夹就会出现在菜单里。

4

我在调试的时候会用到log.txt这个文件。虽然它有点难读,但我有一些小建议。

日志是从上到下写的(新的信息会在下一行),基本上记录了所有事件。

如果你遇到错误,会看到一个很大的十六进制块,大概有20多行,像这样:

280 ms. Exception: 0x00495580:0x00000000

在这个块的上面就是错误信息,或者是导致脚本在Ableton运行时出错的原因。

如果你从这个异常往上看,会看到一些跟踪信息。

另外,你可以使用:

self.log_message("STUFF")

来写入日志(还有其他方法可以做到这点)。

我在工作中见过一些实时的日志文件解析工具,但我还没试过。

希望这些对你有点帮助。我曾经为Python写过一个PHP应用(是的,我知道这有点罪恶)。http://modrn.dj/app

4

要调试控制界面,你可以像这样定义自己的日志方法:

def log(self, message):
    sys.stderr.write("LOG: " + message.encode("utf-8"))

使用示例:

year = 1999
self.log("I'm gonna party like it's " + str(year))

这段代码会把

21179419 ms. RemoteScriptError: LOG: Tonight I'm gonna party like it's 1999

添加到你的 Log.txt 文件中。

另外,值得一提的是(至少在 Live 9.1 版本中),每次你加载新歌曲时,编辑过的控制界面文件都会被重新编译,不需要重启应用程序。

编辑:修改了错误输出的方法,这样每次记录日志时就不会写两行和多余的换行了。

撰写回答