最近在做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()類似設定斷點的位置,系統執行到這句話時,除錯服務端就會顯示相關**,然後你就可以除錯了。
easy_install
比如我在瀏覽器中輸入http://localhost/www/test/imgtest.py。
除錯終端就可以出現如下介面,然後我們就可以使用pdb一些常用的除錯指令對系統進行除錯了 。
特別感謝一下提供這個方法的大神,原文見:
最後再扯些廢話,上面提供的這個方法,只適合一些小工程,自己除錯使用,如果您是大型python web專案的構建者,建議使用sentry,這個東東可以記錄使用者瀏覽網頁的時候遇到的一些異常和錯誤,具體介紹見:
pythonweb開發 Python Web開發
參考原文 wsgi介面 wsgi web server gateway inte ce 是乙個介面,用來遮蔽底部的細節 如tcp的建立連線,http原始請求和響應格式等 wsgi介面定義非常簡單,只需要web開發者實現乙個函式,就可以響應客戶端的http請求。這個函式有兩個引數 environ 包含...
python web開發框架
django python web應用開發框架 django 應該是最出名的python框架,gae甚至erlang都有框架受它影響。django是走大而全的方向,它最出名的是其全自動化的管理後台 只需要使用起orm,做簡單的物件定義,它就能自動生成資料庫結構 以及全功能的管理後台。diesel 基...
Python Web開發框架
python中的web框架 flask例程 可重用成熟,穩健 可擴充套件性良好 提高開發速度 web框架中的概念 大包大攬的django 優點 完美文件。全套解決方案 cache,session,orm 強大的url路由配置 自助管理後台 缺點 系統緊耦合 自帶的orm不夠強大 template比較...