我正在使用DataNitro在Excel中编写Python脚本。它确实非常有用。但是,当我在excel中打开Idle编辑器时,随附的Python Shell不是交互式的,因为它不返回打印语句、显示错误、什么也不返回。每次我运行程序它都会重新启动。这使得调试变得非常困难,因为我不能使用print语句来跟踪错误。
有没有人知道这是不是DataNitro的一个bug,或者应该是这样的,或者是怎么回事?有什么解决方案吗?
非常感谢
发布于 2013-06-19 03:11:52
我们的空闲编辑器只是一个编辑器--它不能作为一个shell工作。
调试程序的最好方法是引发异常。这将冻结脚本运行时打开的shell,您将能够检查变量并查看在执行过程中生成的任何print语句。
例如,如果您运行:
print Cell("A1").value
x = Cell("B1").value
raise您将看到A1的值被打印到shell中,您可以在提示符下输入"x“来查看B1的值。
您还可以将您正在处理的脚本导入到常规的Python shell (当您按下“shell”时打开的那个shell)。这将执行该脚本中的代码。
我们很快就会在这个网站上添加一个调试代码的指南,以及一些让它更容易的功能。
来源:我是DataNitro的创始人之一。
发布于 2013-07-12 20:57:38
不像本那样知识渊博,但已经使用了相当多的DataNitro,这里有一些提示:
一旦脚本运行,shell就会自动关闭。如果您想检查一些打印结果,或者甚至想要与shell进行交互,我通常会在脚本的末尾添加以下内容。
raw_input("Press Enter to Exit shell")不是很优雅,但我甚至创建了一个小循环,用于在控制台中显示文本选项。然后可以从那里与您的程序和工作表进行交互。更聪明更优雅的方法是让你的脚本轮询一个excel单元格,然后在那里采取行动。
您可能会发现另一件很好的事情是,它还允许您运行Ipython,而不是默认的python shell。无法想象使用python而不使用Ipython...要激活这些功能,只需在DataNitro设置中点击"Use Ipython“复选框(不知道这是否与版本相关)。
https://stackoverflow.com/questions/17105361
复制相似问题