使用Data Nitro时的Python shell问题

时间:2013-06-14 09:30:57

标签: python python-idle datanitro

我正在使用DataNitro在Excel中编写Python脚本。它非常有用。但是,当我在excel中打开Idle编辑器时,附带的Python Shell不是交互式的,因为它不返回print语句,显示错误,什么也没有。每次运行程序时它都会重新启动。这使得调试非常困难,因为我无法使用print语句来跟踪错误。

有没有人知道这是否是DataNitro的错误,或者它应该是那样,还是最新的?有什么解决方案吗?

非常感谢

2 个答案:

答案 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”复选框(不知道这是否依赖于版本)。