簡體   English   中英

AppEngine:逐步調試

[英]AppEngine: Step-by-Step Debugging

在本地使用 AppEngine(即使用 dev_appserver.py)時,是否可以進行逐步調試? 使用 logging.info() 或類似函數來顯示代碼中所有變量的值並確定錯誤位置是一種太過時的方式。

稍微擴展一下 codeape 的回答的第一個建議:因為 dev_appserver.py 與 stdin、stdout 和 stderr 混在一起,所以需要做更多的工作來設置“代碼斷點”。 這對我有用:

import sys
for attr in ('stdin', 'stdout', 'stderr'):
    setattr(sys, attr, getattr(sys, '__%s__' % attr))
import pdb
pdb.set_trace()

您必須從命令行而不是通過 GUI App Engine 啟動器運行dev_appserver.py 當執行pdb.set_trace()行時,您將在此時進入pdb調試器。

Eclipse PyDev 支持調試和 AppEngine。

http://code.google.com/appengine/articles/eclipse.html

如果本地 appengine 進程是一個普通的 python 進程,你有幾個選擇:

  1. 在您的代碼中,放置“代碼斷點”: import pdb; pdb.set_trace() import pdb; pdb.set_trace() 像往常一樣運行dev_appserver.py ,當 python 調試器到達包含代碼的行時,它將中斷。

  2. 在 pdb 中運行dev_appserver.py 從 shell: $ python -m pdb dev_appserver.py 要設置斷點,請使用命令b filename.py:linenumber 然后使用c命令繼續。 請參閱http://docs.python.org/library/pdb.html#debugger-commands

請參閱pdb 模塊文檔

PyCharm 專業版支持開箱即用的分步調試。

如果您願意完成幾個設置步驟,免費版本 PyCharm Community Edition 也可以配置為與 Google App Engine python 一起使用。 您不會獲得 PyCharm Professional Edition 的所有優勢,例如部署,但您將能夠進行逐步調試並獲得代碼導航和自動完成功能。

要啟用調試,請通過設置編輯 PyCharm 運行/調試配置:

  • 腳本:App Engine 的 dev_appserver.py
  • 腳本參數:-- --automatic_restart=no --max_module_instances="default:1".
  • 工作目錄:您的基礎項目文件夾(包含 app.yaml 文件的文件夾)

有關更詳細的說明、解釋以及如何讓代碼完成在 aup PyCharm CE 項目中工作,請參閱http://www.enkisoftware.com/devlogpost-20141231-1-Python_Google_App_Engine_debugging_with_PyCharm_CE.html

如果您在 Windows 上工作並且想使用 PyTools(Microsoft Visual Studio 社區)為 GAE 調試 python,請參閱http://www.enkisoftware.com/devlogpost-20140814-1-Python_Google_App_Engine_debugging_with_PyTools.html

是的,這些天你可以輕松地使用 Visual Studio Code。

首先你需要安裝一個python模塊debugpy

pip install debugpy

然后為 Visual Studio Code 安裝 Python 擴展。

現在使用以下命令啟動服務器:

cd /path/to/python/project
python -m debugpy --listen 5678 /path/to/google-cloud-sdk/platform/google_appengine/dev_appserver.py .

在 Visual Studio Code Debug 中,在“lauch.json”中創建一個配置

{
    "name": "Python: Attach",
    "type": "python",
    "request": "attach",
    "connect": {
      "host": "localhost",
      "port": 5678
    }
  }

之后,您可以設置斷點,然后單擊運行“Python:Attach”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM