2017-07-06 116 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中沒有通用的「詳細」模式。

相關問題