使用我的 odoo.sh 專案 (v13.0.2) > EDITOR-Tab ,當我想使用 import pdb 進行除錯時,它會將我重定向到 mywebsite.odoo.com/odoo-sh/editor/lab;pdb.set_trace(),它會引發 BdbQuit 錯誤:
File "/usr/lib/python3.6/bdb.py", line 113, in
dispatch_exception
if self.quitting: raise BdbQuit
在過去的版本中:v13.0.1.xxx,我可以使用 pdb.set_trace() 來除錯我的 python 代碼。如何解決這個問題?
uj5u.com熱心網友回復:
使用這篇文章如何除錯采用標準輸入的 python CLI?,我是這樣管理的:
在 Odoo.sh>EDITOR (Jupyter Lab) 中:打開第一個終端并創建這兩個 fifo,它們將用作 stdin/stdout 以使用 pdb :
mkfifo fifo_stdin mkfifo fifo_stdout cat fifo_stdout & cat > fifo_stdin
...這使得出現一個提示游標。保持此終端選項卡處于打開狀態。
在要除錯的 Python 腳本的頂部寫下這兩行:
import pdb mypdb=pdb.Pdb(stdin=open('fifo_stdin','r'), stdout=open('fifo_stdout','w'))在此 Python 腳本中,使用 2 fifos 在您的自定義 mypdb 上呼叫 set_trace()
def _get_total_amount(self): total_amount = sum(self._get_base_order_lines(program).mapped('price_total')) mypdb.set_trace() return total_amount打開第二個終端以啟動您的 Odoo 應用程式:
odoo-bin -u sale_coupon --stop-after-init
...并等到所有模塊都加載完畢
切換到第一個終端視窗 (fifo)
在另一個 Webbrowser-tab 中:瀏覽您的 Odoo 應用程式/網站以觸發您放置 set_trace() 的功能
轉到第一個終端并輸入要觀察的函式變數:
total_amount 1480.0 (Pdb)使用“繼續”在您的應用程式行程(如果有下一個斷點)中走得更遠,使用“退出”中止除錯
(Pdb) continue (Pdb) quit使用鍵盤組合退出 pdb:Ctrl D
Odoo 可能仍然掛起,這需要在 python 腳本中注釋 pdb 行,關閉終端視窗并重新啟動您的 Odoo-App :
odoo-bin -u sale_coupon --stop-after-init
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/428636.html
下一篇:除錯視窗工具列控制臺缺少箭頭
