1. 程式人生 > >關於的python+web開發的除錯工具

關於的python+web開發的除錯工具

        最近在做python+web開發,採用的是cig模式。但是偶爾會出現請求失敗的情況,具體來說就是使用者在開啟新的頁面的時候,python與後臺server的通訊會卡在某個地方,具體的原因一直搞不清楚,所以想利用python的相關除錯工具來解決這個問題。但是python一般自帶的除錯工具都是本地(local)的,沒法進行遠端(remote)除錯,後來網上找了好久,發現一些主流的除錯工具有ipython notebook,但是這個東西折騰了好久,愣是沒搞出來,然後就放棄了。

        但是這兩天的搜刮資料畢竟有點效果,終於知道自己要找的是什麼樣的工具了,python遠端除錯,這個東東主要實現的功能是當用戶在開啟我們提供的連結時,如果系統出現bug,這個過程我們是無法捕捉到的。所以,使用者在什麼情況下遇到這種問題,也就很難把握了。當然,我們可以採用日誌記錄這個事件,這不失為一種好辦法。但是,我們也可以採用另外一種,就是,我們自己去進行連結訪問,然後在本地開啟相關服務,在訪問過程處理的時候,本地會自動彈出我們設定斷點的地方,然後我們就可以利用一些單步執行,等等簡單的指令進行系統除錯。

       瞭解了一下,感覺pycharm還是蠻受歡迎的,但是相對而言,pycharm對系統的要求也是蠻高的,如果電腦配置差點的話,pycharm執行就比較卡了。

        不過,我發現了一種更輕量級的除錯工具,某大神編寫的,過會我會把原始連結放在下面。接下來描述這個過程是在Windows7+Cygwin上進行的。

        給出具體步驟先

        1、在Cygwin上執行  

    python -c "import rm_pdb; rm_pdb.server()"   //這是除錯服務端(具體執行時請不要複製這段註釋文字)
         

         輸入上面的指令後點回車,此步驟需要第3步

的支援,如果你使用的是用easy_install安裝模組的話,就直接輸入上面的命令,否則就把系統切換到rm_pdb.py所在的資料夾中,然後輸入命令一樣可以實現功能。

         2、在你想除錯的py檔案中任意位置加入

     import rm_pdb
     rm_pdb.pdb().set_trace()

         

          import rm_pdb是檔案頭,這個大家應該都清楚該放在哪裡,rm_pdb,pdb().set_trace()類似設定斷點的位置,系統執行到這句話時,除錯服務端就會顯示相關程式碼,然後你就可以除錯了。

           easy_install http://ptcoding.googlecode.com/svn/trunk/rm_pdb

           然後我們開啟相關的連結就可以進行除錯了,除錯方法和使用pdb進行除錯一樣。

          比如我在瀏覽器中輸入http://localhost/www/test/imgtest.py。

         除錯終端就可以出現如下介面,然後我們就可以使用pdb一些常用的除錯指令對系統進行除錯了 。

          

pdb一些常用的指令,大家可以參考一下: http://blog.csdn.net/redhat7890/article/details/5703617

特別感謝一下提供這個方法的大神,原文見:http://apt-blog.net/rm_pdb_module_for_debugging_multiprocessing

          最後再扯些廢話,上面提供的這個方法,只適合一些小工程,自己除錯使用,如果您是大型python web專案的構建者,建議使用sentry,這個東東可以記錄使用者瀏覽網頁的時候遇到的一些異常和錯誤,具體介紹見:http://blog.csdn.net/largetalk/article/details/8640854