我正在使用DataNitro在Excel中编写Python脚本。它非常有用。但是,当我在excel中打开Idle编辑器时,附带的Python Shell不是交互式的,因为它不返回print语句,显示错误,什么也没有。每次运行程序时它都会重新启动。这使得调试非常困难,因为我无法使用print语句来跟踪错误。
有没有人知道这是否是DataNitro的错误,或者它应该是那样,还是最新的?有什么解决方案吗?
非常感谢
答案 0 :(得分:3)
我们的IDLE编辑器只是一个编辑器 - 它不能用作shell。
调试程序的最佳方法是引发异常。这将冻结运行脚本时打开的shell,并且您将能够检查变量并查看在执行期间生成的任何打印语句。
例如,如果您运行:
print Cell("A1").value
x = Cell("B1").value
raise
您将看到A1的值打印到shell,您可以在提示符下输入“x”以查看B1的值。
您还可以将正在处理的脚本导入常规Python shell(按“shell”时打开的脚本)。这将执行该脚本中的代码。
我们将尽快添加一个调试代码到网站的指南,以及一些使其更容易的功能。
来源:我是DataNitro的创始人之一。
答案 1 :(得分:3)
不像Ben那样知识渊博,但是一直在使用DataNitro,这里有一些提示:
一旦脚本运行,shell就会自动关闭。如果你想检查一些打印件甚至与shell进行交互,我通常会在脚本末尾跟随它。
raw_input("Press Enter to Exit shell")
不是很优雅,但我甚至创建了一个在控制台中显示文本选项的小循环。然后可以从那里与您的程序和表格进行交互。更聪明,更优雅的方法是让你的脚本轮询一个excel单元格,然后在那里采取行动。
你可能会觉得很好的其他东西也是你运行Ipython而不是默认的python shell。无法想象使用没有Ipython的python ...所以你可以获得Tab完成Ipython调试等的好处。要激活它,只需单击DataNitro设置中的“使用Ipython”复选框(不知道这是否依赖于版本)。