gpt4 book ai didi

python - 如何查看 Python 脚本中的错误或异常?

转载 作者:行者123 更新时间:2023-11-28 21:26:19 26 4
gpt4 key购买 nike

我完全不熟悉 Python(我有 PHP 背景)

我习惯了 PHP 的错误处理和日志记录。然而,对于 Python,我在一个应该工作的非常简单的脚本上遇到了 500 错误。

有没有办法用 Python 开启错误处理?因为 500 错误并没有告诉我太多信息,除了有些地方不对。

我已经在网上寻找这个问题的答案,但我没有找到一个应该非常明显的解决方案。

最佳答案

您的问题是询问如何查看错误或异常(而不是如何处理,当然您也需要处理这些错误),并从500 错误 和 PHP 背景似乎暗示您正在使用 Python 进行 Web 编程。

在 Python 中有很多方法可以做到这一点,这里是我倾向于使用的一些方法:

  1. 在生产中使用logging module记录错误。有很多工具可以帮助您,例如 Sentry [ source code here ].您可以阅读有关日志记录的更多信息 here .
  2. 在开发中,使用 python -m pdb myscript.py 运行您的脚本,这将以调试器模式启动您的脚本,然后输入 c(继续) 继续脚本直到发生错误,现在您将能够在交互式 PDB(Python 调试器)提示符中看到状态。
  3. 在开发中,如果您使用的是依赖 WSGI 的框架(或您的脚本),您可以使用基于浏览器内的图形化交互式 JavaScript 帮助程序 Werkzeug这允许您在调用堆栈的每个 级别进行调试。

而且,要指出最明显的一点,如果程序崩溃,Python 解释器将打印出堆栈跟踪,例如:

→ python -c 'pprint "hello"'
File "<string>", line 1
pprint "hello"
^
SyntaxError: invalid syntax


# print.py is just one line: print 'hello world'
→ python print.py
File "print.py", line 1
pprint 'hello world'
^
SyntaxError: invalid syntax

更新:

您似乎没有使用任何框架,而且您在主机后面,从外观上看,它并没有告诉您它究竟是如何为您的 Python 脚本提供服务的。现在,由于您只想在浏览器中查看堆栈跟踪,因此您可以根据主机使用的内容执行以下操作:

如果您的脚本通过 CGI 在服务器后面运行,您需要做的就是使用 Python cgitb在 HTML 页面上打印堆栈跟踪的模块:

import cgitb
cgitb.enable()

但是,很可能您注册的共享主机正在使用 Apache 的 mod_python,因此打开 PythonDebug在 Apache 配置文件中应该在浏览器中打印堆栈跟踪:

PythonDebug On

对于带有 mod_wsgi 的 Apache,有一篇比我在这里总结的更好的文章:mod_wsgi Debugging Techniques

关于python - 如何查看 Python 脚本中的错误或异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13117641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com