{"id":570,"date":"2018-04-17T02:38:53","date_gmt":"2018-04-16T18:38:53","guid":{"rendered":"https:\/\/vinta.ws\/code\/?p=570"},"modified":"2026-03-17T01:17:18","modified_gmt":"2026-03-16T17:17:18","slug":"print-traceback-call-stack-in-python","status":"publish","type":"post","link":"https:\/\/vinta.ws\/code\/print-traceback-call-stack-in-python.html","title":{"rendered":"Print traceback call stack in Python"},"content":{"rendered":"<h2>Extract Traceback From An Exception<\/h2>\n<pre class=\"line-numbers\"><code class=\"language-py\">try:\n    do_shit()\nexcept Exception as exc:\n    print('----- start -----')\n    tb = _hx_e.__traceback__\n    raise RuntimeError().with_traceback(tb)\n    print('----- end -----')<\/code><\/pre>\n<p>ref:<br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/11414894\/extract-traceback-info-from-an-exception-object\">https:\/\/stackoverflow.com\/questions\/11414894\/extract-traceback-info-from-an-exception-object<\/a><\/p>\n<h2>Print Traceback Without Raising An Exception<\/h2>\n<pre class=\"line-numbers\"><code class=\"language-py\">print('----- start -----')\nimport traceback; traceback.print_stack()\nprint('----- end -----')\n\n# or\n\nimport traceback\nfor line in traceback.format_stack():\n    print(line.strip())<\/code><\/pre>\n<p>The result would be like:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-py\">&gt;&gt;&gt; import qingcloud.iaas\n&gt;&gt;&gt; conn = qingcloud.iaas.connect_to_zone('pek2', '123', '456')\n&gt;&gt;&gt; conn.describe_instances(limit=1)\n----- start -----\n  File \"&lt;stdin&gt;\", line 1, in &lt;module&gt;\n  File \"qingcloud\/iaas\/connection.py\", line 214, in describe_instances\n    return self.send_request(action, body)\n  File \"qingcloud\/iaas\/connection.py\", line 42, in send_request\n    resp = self.send(url, request, verb)\n  File \"qingcloud\/conn\/connection.py\", line 245, in send\n    request.authorize(self)\n  File \"qingcloud\/conn\/connection.py\", line 156, in authorize\n    connection._auth_handler.add_auth(self, **kwargs)\n  File \"qingcloud\/conn\/auth.py\", line 118, in add_auth\n    import traceback; traceback.print_stack()\n----- end -----<\/code><\/pre>\n<p>ref:<br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/3925248\/print-python-stack-trace-without-exception-being-raised\">https:\/\/stackoverflow.com\/questions\/3925248\/print-python-stack-trace-without-exception-being-raised<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Print Python stack traces without raising an exception.<\/p>\n","protected":false},"author":1,"featured_media":571,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[29,2],"class_list":["post-570","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-about-python","tag-debug","tag-python"],"_links":{"self":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts\/570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/comments?post=570"}],"version-history":[{"count":0,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts\/570\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/media\/571"}],"wp:attachment":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/media?parent=570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/categories?post=570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/tags?post=570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}