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