python-anvil-app-server: можете ли вы запустить python debuggor pdb или ipdb в коде на стороне сервера?

#python #web-development-server #anvil

#python #веб-разработка-сервер #anvil

Вопрос:

  • я занимаюсь веб-разработкой с помощью python anvil-app-server https://pypi.org/project/anvil-app-server /
  • я хотел бы использовать отладчик, потому что это мощный / полезный инструмент для кода python на стороне сервера
  • я сгенерировал приложение hello-world с именем ServerSidePdb
  • я ввел pdb и ipdb в обратный вызов на стороне сервера для приложения, созданного helloworld, и получил вывод консоли, который выглядит как ошибка:
 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 в коде на стороне сервера? если да, то как?

Ответ №1:

  • код на стороне сервера выполняется на сервере Java, а сервер Java фиксирует стандартный / стандартный вывод, что не позволяет напрямую запускать pdb или ipdb
  • я слышал, что vscode обладает хорошей возможностью удаленной отладки, так что это может быть способ перейти в отладчик
    • все обратные вызовы сервера anvil имеют 30-секундный тайм-аут
    • поэтому убедитесь, что вы пытаетесь отлаживать только в фоновой задаче anvil (или я думаю, что время ожидания остановит вас преждевременно)