在本地使用AppEngine(即使用dev_appserver.py)時,有沒有做一步一步的調試?使用logging.info()或類似的函數來顯示代碼中所有變量的值並確定錯誤的位置是過時的方式。AppEngine:分步調試
回答
Eclipse PyDev支持調試和AppEngine。
如果本地的AppEngine過程是一個普通的Python過程中,你有兩個選擇:
在代碼中,地方 「代碼斷點」:
import pdb; pdb.set_trace()
。正常情況下運行dev_appserver.py
,python調試器在到達代碼行時會中斷。在pdb中運行
dev_appserver.py
。從外殼:$ python -m pdb dev_appserver.py
。要設置斷點,請使用命令b filename.py:linenumber
。然後使用c
命令繼續。見http://docs.python.org/library/pdb.html#debugger-commands
要擴大codeape的答案的第一個建議一點點:因爲dev_appserver.py用標準輸入,標準輸出和標準錯誤扼殺,需要更多的工作來設置「代碼斷點」。這是否把戲對我來說:
import sys
for attr in ('stdin', 'stdout', 'stderr'):
setattr(sys, attr, getattr(sys, '__%s__' % attr))
import pdb
pdb.set_trace()
你必須在命令行而不是通過GUI應用程序引擎啓動運行dev_appserver.py
。當pdb.set_trace()
行被執行時,您將被放入pdb
調試器中。
PyCharm Professional Edition啓用開箱即用的逐步調試。
如果您願意經歷幾個設置步驟,可以將免費版本PyCharm Community Edition配置爲使用Google App Engine python。你不會得到PyCharm專業版的所有優勢,比如部署,但你可以一步一步地進行調試,並獲得代碼導航和自動完成工作。
要啓用調試,通過設置編輯PyCharm運行/調試配置:
- 腳本:App Engine的dev_appserver.py
- 腳本參數:
--automatic_restart=no --max_module_instances="default:1" .
- 工作目錄:你的基地項目文件夾(其中一個包含app.yaml文件)
有關更多詳細說明,說明以及如何在aCyCharm CE pr中完成代碼完成工作oject,請參閱http://www.enkisoftware.com/devlogpost-20141231-1-Python_Google_App_Engine_debugging_with_PyCharm_CE.html。
如果你在Windows上工作,你要使用PyTools(微軟的Visual Studio社區)調試的Python GAE,看到http://www.enkisoftware.com/devlogpost-20140814-1-Python_Google_App_Engine_debugging_with_PyTools.html
- 1. XSLT分步調試器
- 2. 調試通道API Appengine
- 3. 調試谷歌appengine蟒蛇
- 4. 異步/等待appengine
- 5. AppEngine上調試TagLibConfiguration(java的碼頭)
- 6. 步入/調試ServicedComponent
- 7. 調試Java同步
- 8. 調試 - 下一步?
- 9. timepicker調整分步
- 10. carddav caldav - 在AppEngine中同步
- 11. 異步調用與C#只能一步一步調試
- 12. 調試步入和步出VS2015較慢
- 13. Eclipse Oxygen - 調試問題「一步步」
- 14. 一步一步地調試makefile
- 15. Allegro CL,調試功能一步一步
- 16. STM32L發現一步一步調試
- 17. 異步在調試時表現同步?
- 18. 一步一步調試目標c
- 19. 調試一步一步遞歸
- 20. 調試一步一步回送Api
- 21. 調試一步一步Trinary搜索
- 22. 測試中的AppEngine
- 23. 步驟調試並行
- 24. Groovy調試器不同步
- 25. VS2012調試步入PL/SQL
- 26. sql connectionstring逐步調試?
- 27. 調試IntentService同步ParseObjects
- 28. Emacs + GDB + SCons +逐步調試
- 29. 與組裝調試(同步)
- 30. 調試:步入DispatchMessage函數()
第一個沒有爲我工作。它只是不停止,我似乎得到BdbQuit錯誤! – Rafid 2010-12-24 10:25:36
第二個爲我工作,但它不方便。它從一開始就打破了,而我想在我的代碼的某個點上有一個斷點。 – Rafid 2010-12-24 10:25:58
要設置斷點,請使用命令「b filename.py:linenumber」。然後使用「c」命令繼續。請參閱http://docs.python.org/library/pdb.html#debugger-commands – codeape 2010-12-25 18:45:20