python-anvil-app-server:你可以在服务器端代码上运行 python debuggor pdb 或 ipdb 吗? 你能在服务器端代码上运行 python debuggor pdb 或 ipdb 吗?如果是,如何?

问题描述

Calling function 'say_hello_name' for app 'ServerSidePdb' (ID client-q5jGe8vXpy/ATVXEjmwQAw==)
[DEBUG anvil.app-server.run] [SERVER] > /home/trevor/workspace/anvil/MyApp/ServerModule1.py(13)say_hello_name()
Worker terminated for IDs set() (return code -9)
[DEBUG anvil.app-server.run] [SERVER] (Pdb) 
[ERROR anvil.app-server.run] Error report from client code:
AnvilWrappedError: [unexpected error]
Traceback:
  /usr/lib64/python3.6/bdb.py:70

  /usr/lib64/python3.6/bdb.py:51

  MyApp/ServerModule1.py:13

  MyApp/ServerModule1.py:13

  app/MyApp/Form1/__init__.py:15

你能在服务器端代码上运行 python debuggor pdb 或 ipdb 吗?如果是,如何?

解决方法

  • 服务器端代码在 java 服务器下执行,java 服务器捕获 stdin/stdout,这会阻止您直接运行 pdb 或 ipdb
  • 我听说 vscode 有很好的远程调试能力,所以这可能是一种进入调试器的方法
    • 所有 anvil 服务器回调都有 30 秒的超时时间
    • 所以请确保您只尝试在 anvil 后台任务中进行调试(或者我认为超时会过早地阻止您)