2017-07-06 68 views
0

我正在使用我的第一个小应用程序的经验,本质上是基于Pandasmatplotlib的数据查看器,使用PyQt作为GUI部件。如何在Spyder中调试基于PyQt的应用程序

现在我发现很难了解我的代码出了什么问题,因为错误没有传播到iPython控制台我从中启动我的脚本。 它根本不会做预期的事情,但没有关于'为什么'的信息。

为了解决这个问题,我们假设我有一个按钮,它应该在画布上绘制某条曲线。如果数据的索引操作失败了,因此没有任何东西可以绘制,那么画布上就不会出现任何东西,但是我不会找到实际上索引没有找到的回溯。

使用调试器也证明非常麻烦。

我的情况下,在运行我的main(),我可以与IPython的外壳互动,做这样的事情:

main.my_plot_function() 

从中我会得到一个标准的输出,看看什么是错的。虽然不是最优的,但这是个窍门。

今天早上我不得不重置Spyder(不是在Windows上启动),从那时起,当我启动我的脚本时,控制台没有响应。所以我不能`main.my_plot_function()'了。

一般来说,有没有办法指示Spyder或控制台,我想看看在后台发生了什么?一些“详细”开关?

回答

0

我不确定你的意思是想知道后台发生了什么。我假设你希望知道代码中的许多点,变量类型和值是什么和/或当前执行点在哪里。

有两种选择:

1)使用打印语句,无论你需要知道发生了什么事情。例如,如果您有一个绘图函数,只需在函数内部打印一些打印语句以打印出正在绘制的列表/数组的大小等等。您还可以在这方面查找有用的函数,即,要打印的type()输出变量的类型以确保它是你想象的那样,打印(locals())以打印所有局部变量的名称和值等。

2)使用pdb来引入断点并运行main脚本从命令行。这将停止脚本执行,并从pdb控制台中执行,您可以检查数据结构。当然还有其他的调试器可以使用,比如pudb(带有基本的GUI和一些比pdb更多的功能)。

spyder或我知道的任何其他Python IDE中没有通用的“详细”模式。

相关问题