在Ableton Live中调试Python
我怎么才能在Ableton Live中查看我的Python MIDI远程脚本的错误呢?我在网上看到过提到一个隐藏的Python控制台的链接,但没有找到关于怎么打开它的说明,也不知道它是否能帮到我!
现在我只能输入代码,重新加载脚本,然后看看会发生什么。如果什么都没发生,那就说明出错了。这过程真是太麻烦了……
编辑:我还想补充一下,Log.txt
文件里也没有什么有用的信息,尽管这个文件是有在更新的。
6 个回答
为了让大家都能明白:在Mac OS X 10.9系统上,Log.txt文件的位置是
/Users/-用户名-/Library/Preferences/Ableton/Live 9.1/
这个Live 9.1的文件夹可能会因为不同版本的Live而有所不同。
注意,Library文件夹是隐藏的。我花了一段时间才弄明白这一点。想要轻松找到它,可以在Finder中点击“前往”菜单,然后按住Alt键,Library文件夹就会出现在菜单里。
我在调试的时候会用到log.txt这个文件。虽然它有点难读,但我有一些小建议。
日志是从上到下写的(新的信息会在下一行),基本上记录了所有事件。
如果你遇到错误,会看到一个很大的十六进制块,大概有20多行,像这样:
280 ms. Exception: 0x00495580:0x00000000
在这个块的上面就是错误信息,或者是导致脚本在Ableton运行时出错的原因。
如果你从这个异常往上看,会看到一些跟踪信息。
另外,你可以使用:
self.log_message("STUFF")
来写入日志(还有其他方法可以做到这点)。
我在工作中见过一些实时的日志文件解析工具,但我还没试过。
希望这些对你有点帮助。我曾经为Python写过一个PHP应用(是的,我知道这有点罪恶)。http://modrn.dj/app
要调试控制界面,你可以像这样定义自己的日志方法:
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 版本中),每次你加载新歌曲时,编辑过的控制界面文件都会被重新编译,不需要重启应用程序。
编辑:修改了错误输出的方法,这样每次记录日志时就不会写两行和多余的换行了。