我正在使用我的第一个小型应用程序,主要是基于Pandas
和matplotlib
的数据查看器,使用PyQt
作为GUI部件。
我现在发现的困难是了解我的代码出了什么问题,因为错误没有传播到iPython控制台我启动了我的脚本。 它根本不会做出预期的事情,但没有关于'为什么'的信息。
为了解决问题,假设我有一个按钮,应该在画布上绘制某条曲线。如果数据的索引操作失败,因此没有任何内容可以绘制,那么画布上什么都不会出现,但是我没有得到实际索引的追踪,因此找不到。
使用调试器也证明非常麻烦。
我有一种情况,在运行我的main()
时,我可以与IPython shell进行交互,并执行以下操作:
main.my_plot_function()
我将获得标准输出,看看有什么问题。虽然不是最佳的,但这样做了。
今天早上我不得不重置Spyder
(在Windows上没有启动),从那时起,当我启动脚本时,控制台没有响应。所以我不能再做'main.my_plot_function()了。
一般来说,有没有办法指示Spyder
或控制台,我想看看后台发生了什么?一些“冗长”的转换?
答案 0 :(得分:0)
我不知道你想知道背景中发生了什么是什么意思。我假设您希望知道代码中的许多点,变量类型和值是什么和/或当前执行点的位置。
有两种选择:
1)在需要知道发生了什么的地方使用打印语句。例如,如果你有一个绘图功能,只需在函数内部放置一些打印语句,打印出正在绘制的列表/数组的大小等。你也可以在这方面寻找有用的函数,即打印类型()输出变量的类型以确保它是你认为的那样,print(locals())来打印所有局部变量的名称和值等。
2)使用pdb引入断点并从命令行运行主脚本。这将停止您想要的脚本执行,并从pdb控制台,您可以检查数据结构。当然,您可以使用其他调试器,例如pudb(具有基本GUI和一些除pdb之外的其他功能)。
在spyder或我知道的任何其他Python IDE中没有通用的“详细”模式。