4

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

有谁知道这是否是 DataNitro 的错误,或者应该是这样,或者发生了什么?有什么解决办法吗?

非常感谢

4

2 回答 2

3

我们的 IDLE 编辑器只是一个编辑器——它不能作为 shell 工作。

调试程序的最佳方法是引发异常。这将冻结脚本运行时打开的 shell,您将能够检查变量并查看执行期间生成的任何打印语句。

例如,如果您运行:

print Cell("A1").value
x = Cell("B1").value
raise

您将看到 A1 的值打印到 shell,您可以在提示符处输入“x”以查看 B1 的值。

您还可以将您正在处理的脚本导入常规 Python shell(当您按下“shell”时打开的那个)。这将执行该脚本中的代码。

我们将很快向该站点添加调试代码的指南,以及一些使其更容易的功能。

资料来源:我是 DataNitro 的创始人之一。

于 2013-06-18T19:11:52.120 回答
3

不如 Ben 知识渊博,但已经使用 DataNitro 相当多,这里有一些提示:

脚本运行后,shell 会自动关闭。如果你想检查一些打印甚至与我通常在脚本末尾放置的 shell 交互。

raw_input("Press Enter to Exit shell")

不是很优雅,但我什至创建了一个在控制台中显示文本选项的小循环。然后可以从那里与您的程序和工作表进行交互。更聪明、更优雅的方法是让你的脚本轮询一个 excel 单元格,然后在那里采取行动。

您可能会觉得不错的另一件事是,您也可以运行 Ipython 而不是默认的 python shell。无法想象在没有 Ipython 的情况下使用 python ...因此您可以获得选项卡完成 Ipython 调试等的好处。要激活它,只需单击 DataNitro 设置中的“使用 Ipython”复选框(不知道这是否取决于版本)。

于 2013-07-12T12:57:38.307 回答