Просмотрев сайт гуппи и не найдя никакой информации о том, как запустить там браузер профилей, я начал искать источник гуппи и в конце концов нашел guppy / heapy / Prof.py, в конце которого я увидел строку документации содержащие эту строку:
[0] heapy_Use.html#heapykinds.Use.pb
Затем, вспомнив, что я видел документацию, в которой указан тип возвращаемого значения guppy.hpy как «Использовать», я проверил, будет ли guppy.hpy (). Pb () что-нибудь делать. И действительно, это так. Похоже, именно так запускается браузер профилировщика. Я не уверен, что это то, о чем вы спрашивали, но мне нужно было разобраться, прежде чем я смогу ответить на другую возможную часть вашего вопроса. :)
Кажется, самый простой способ сделать эту информацию доступной - сделать ресурс на вашем веб-сервере, который вызывает Use.pb в процессе рендеринга. Есть и другие подходы, такие как встраивание люка в ваше приложение или использование обработчика сигнала для его запуска, но мне нравится идея ресурса. Так, например:
class ProfileBrowser(Resource):
def render_GET(self, request):
h.pb()
return "You saw it, right?"
...
root = RootResource(mq)
root.putChild("profile-browser", ProfileBrowser())
...
Затем вы можете посетить / profile-browser, когда захотите посмотреть в браузере профилей. Вызов "pb" блокируется до тех пор, пока браузер профиля не выйдет (обратите внимание, что простое закрытие окна с помощью кнопки wm destroy не вызывает его возврата - кажется, только пункт меню выхода), поэтому ваш сервер зависает до тех пор, пока вы не закроете окно, но для целей отладки может показаться, что это нормально.