如何使Python可执行文件在出现错误时暂停?
因此,我知道我可以使用如何使Python可执行文件在出现错误时暂停?,python,Python,因此,我知道我可以使用pyinstaller使Python可执行 但是,每次它引发错误时,它都会立即结束程序,因此我无法找到错误是什么 我知道我可能可以用time.sleep(30000)来阻止它 但是,如果代码在遇到time.sleep(30000)之前出现错误,它将立即关闭 总而言之,如何让它不关机,这样我就可以知道错误在哪里了?不要只是双击文件,而是从命令行运行它。程序自动创建的终端窗口也将在程序结束时自动关闭,但如果您自己打开终端并从命令行运行程序,它将不会触及打开的终端,您可以读取错误
pyinstaller
使Python可执行
但是,每次它引发错误时,它都会立即结束程序,因此我无法找到错误是什么
我知道我可能可以用time.sleep(30000)
来阻止它
但是,如果代码在遇到time.sleep(30000)
之前出现错误,它将立即关闭
总而言之,如何让它不关机,这样我就可以知道错误在哪里了?不要只是双击文件,而是从命令行运行它。程序自动创建的终端窗口也将在程序结束时自动关闭,但如果您自己打开终端并从命令行运行程序,它将不会触及打开的终端,您可以读取错误。您可以使用
尝试,但不必像Mars Lee所说的那样执行操作
print("Test 1");
在一定数量的行之后。如果只需双击即可运行可执行文件,请尝试从控制台运行它。例如,在Windows中:
在cmd中,运行
cd可执行文件路径
myexecutable.exe
更好的方法是引入logger,以便其他实现了日志记录的模块可以写入文件
此外,您还可以将代码放入try-except块:
try:
#my_code_here
print('Here is where the exception is')
except Exception as e:
print('Unexpected error:' + str(e))
根据您的描述,听起来您正在运行一个控制台程序(即带有可见控制台窗口的程序)
如果是,您有两个选择:
在控制台窗口中运行它。这只需要运行命令提示符或终端仿真器(随计算机提供),cd
ing进入包含程序的目录,然后通过输入程序名来运行它。当程序退出时(例如由于错误),将打印回溯,并返回提示李>
您可以在整个程序周围添加一个try
/,以捕获任何错误并报告它们。例如:
try:
main()
except Exception:
import traceback
traceback.print_exc()
raw_input("Program crashed; press Enter to exit")
下面是另一种方法,使用Python的异常挂钩:
import sys
def myexcepthook(type, value, traceback, oldhook=sys.excepthook):
oldhook(type, value, traceback)
raw_input("Press RETURN. ") # use input() in Python 3.x
sys.excepthook = myexcepthook
每当Python想要打印异常时,就会调用异常挂钩。在这种情况下,我们调用以前安装的异常挂钩(打印异常),然后等待用户按Return。使用try except
捕获异常error@haifzhan-OP希望看到错误,而不是抑制错误。try/except不抑制错误。那么您的意思是我可以在try:下添加整个代码?我知道,除了以前,我会尝试。但我不确定我是否可以这样做——在try下添加完整的代码(可能1000行)。我喜欢你的控制台答案,它可以完美地工作!非常感谢。是的,您可以将整个代码置于try-except下,并使其捕获任何异常。您可以将异常打印到控制台或放入日志文件,也可以同时执行这两项操作。谢谢您的回答。但我不明白你的代码是怎么工作的。你能给我解释一下吗?谢谢:)加了一点解释;如果你需要更多,请告诉我。