Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python程序终止后,如何保持控制台窗口打开以查看产生的任何错误?_Python_Python 3.x - Fatal编程技术网

在python程序终止后,如何保持控制台窗口打开以查看产生的任何错误?

在python程序终止后,如何保持控制台窗口打开以查看产生的任何错误?,python,python-3.x,Python,Python 3.x,我在Win10上使用Python3,通过打开命令提示符窗口并键入文件位置来运行代码。但是,程序一终止,在我读取任何错误之前,窗口就会关闭。 编辑:无论程序是否有错误,都会发生这种情况。 谢谢。解决方案1: 我刚才看到你的评论: 当我这样做时,我收到错误“python”未被识别为 内部或外部命令、可操作程序或批处理文件 看起来您还没有指定python可执行文件的路径:您需要将python可执行文件路径添加到窗口的path变量中。您可以在此处看到如何执行此操作: 解决方案2: 您可以在python代

我在Win10上使用Python3,通过打开命令提示符窗口并键入文件位置来运行代码。但是,程序一终止,在我读取任何错误之前,窗口就会关闭。 编辑:无论程序是否有错误,都会发生这种情况。
谢谢。

解决方案1:

我刚才看到你的评论:

当我这样做时,我收到错误“python”未被识别为 内部或外部命令、可操作程序或批处理文件

看起来您还没有指定python可执行文件的路径:您需要将python可执行文件路径添加到窗口的path变量中。您可以在此处看到如何执行此操作:

解决方案2

您可以在python代码末尾使用
input(“回车以退出”)
来保持程序的活动状态。一旦按enter键,它将退出

您还可以将代码包围在
try
except
语句中,并将thr
input()
放在
except
中,以防止程序在出现错误时退出,但与注释中提到的@Kevin一样,这将捕获运行时错误,而不是语法错误

解决方案3


您可以将错误或任何信息写入文件,例如
log.txt
,然后在代码运行完成后读取该日志文件。例如FWIW,我的Windows系统上有几个Python版本,因此我不想将任何Python目录永久添加到路径中

每个版本的代码位于单独的文件夹(例如“py37”)中,每个项目都有一个子文件夹,例如“myProject”。 在py37中,有一个名为pyEnv.bat的批处理文件,其内容如下:

@echo off
path=%path%;C:\Python37\;C:\Python37\Scripts\
cd.
cmd
在Windows资源管理器中,我转到要使用的项目文件夹,单击地址栏并键入
。\pyEnv
。这将启动一个DOS框,我现在可以在其中执行
python myproject.py
。您可以看到
print()
输出、错误等

您可以向上箭头尝试不同的模块,先键入它们


一旦退出DOS框,您的路径将再次恢复正常

将其作为yourscript.py的python name运行,以便在同一控制台上下文中执行。我也在使用Windows 10,并且我的命令提示符保持打开状态,无论程序是否因异常而终止,无论我是使用
python myscript.py
还是仅使用
myscript.py
@zwer运行程序,当我这样做时,我收到的错误“python”未被识别为内部或外部命令,可操作的程序或批处理文件。
input()
如果脚本由于异常而提前终止,则不会执行。这似乎不是查看错误的有效方法。我同意,只有在没有错误的情况下才打开窗口是一种解决方案。我想他可以用try-except来包围他的代码,并将
input()
放在except中,当然,这应该可以处理运行时错误,但对syntaxerror没有多大好处,因为syntaxerror是在任何
try
块被输入之前出现的。