在python运行脚本时有一种方法来停止控制台窗口吐出追溯后关闭?停止python从关闭错误
回答
如果您在Windows操作系统这样做,你可以前缀的快捷方式的目标有:
C:\WINDOWS\system32\cmd.exe /K <command>
这将防止当命令退出时窗口关闭。
你的问题不是很清楚,但我认为当发生异常时,python解释器退出(因此调用控制台窗口关闭)。
您需要修改您的python应用程序以捕获异常并在不退出解释器的情况下打印它。一种方法是打印“按ENTER退出”,然后从控制台窗口读取一些输入,有效地等待用户按Enter键。
try:
#do some stuff
1/0 #stuff that generated the exception
except Exception as ex:
print ex
raw_input()
您可能需要使用`traceback.print_exc()`,而不是`打印ex`对于更详细的堆栈跟踪 – 2014-11-12 14:47:00
你可以有第二个脚本,它导入/运行你的主代码。该脚本将捕获所有异常,并打印回溯(然后结束前等待用户输入)
假设你的代码使用的是if __name__ == "__main__": main()
成语结构..
def myfunction():
pass
class Myclass():
pass
def main():
c = Myclass()
myfunction(c)
if __name__ == "__main__":
main()
..和文件被命名为“ myscriptname.py”(显然是可以改变的),下面的工作
from myscriptname import main as myscript_main
try:
myscript_main()
except Exception, errormsg:
print "Script errored!"
print "Error message: %s" % errormsg
print "Traceback:"
import traceback
traceback.print_exc()
print "Press return to exit.."
raw_input()
(注意:raw_input()
已Python 3被替换为input()
)
如果没有main()
功能,你可以使用把import语句在try:
块:
try:
import myscriptname
except [...]
一个更好的解决办法,不需要额外的包装的脚本,是运行脚本从IDLE或命令行。
在Windows上,转到开始>运行,输入cmd
并输入。然后输入类似..
cd "\Path\To Your\ Script\"
\Python\bin\python.exe myscriptname.py
(如果你安装了Python到C:\Python\
)
在Linux/Mac OS X上它是一个更容易一点,你只要运行cd /home/your/script/
然后python myscriptname.py
最简单的方法就是要使用IDLE,启动IDLE,打开脚本并单击运行按钮(我认为是F5
或Ctrl+F5
)。当脚本退出时,窗口不会自动关闭,所以你可以看到任何错误
此外,如Chris Thornhill建议,在Windows上,您可以创建脚本的快捷方式,并在其属性前加上目标..
C:\WINDOWS\system32\cmd.exe /K [existing command]
从http://www.computerhope.com/cmd.htm:
/K command - Executes the specified command and continues running.
在UNIX系统(Windows已经在上面覆盖......),你可以改变解释参数包括-i标志:
#在/ usr/bin中/ Python的-i
从手册页:
-i
当脚本作为第一个参数传递或-c选项时,执行脚本或命令后进入交互模式。它不读取$ PYTHONSTARTUP文件。当脚本引发异常时,这可以用于检查全局变量或堆栈跟踪。
时发生未处理的异常可以注册,保持应用程序正常顶级异常处理程序:
def show_exception_and_exit(exc_type, exc_value, tb):
import traceback
traceback.print_exception(exc_type, exc_value, tb)
raw_input("Press key to exit.")
sys.exit(-1)
import sys
sys.excepthook = show_exception_and_exit
如果有异常事件处理程序内部存在的那些由C称为这是特别有用代码,通常不会传播错误。
+1,如果在导入过程中发生异常,甚至可以工作,而不必重新缩进整个文件来尝试一下。它也适用于* not *从批处理文件运行,例如使用ShellExecuteEx。 – 2014-07-28 09:35:31
在Windows而不是双击py文件,你可以拖动到一个已经打开的CMD窗口,然后按回车。它在异常后保持打开状态。
丹
,如果你使用的是Windows,你可以做到这一点
import os
#code here
os.system('pause')
- 1. 从关闭中停止组合框
- 2. 如何从关闭中停止QThread?
- 3. 如何停止python从关闭键盘中断连接?
- 4. Twitter4j TwitterStream停止/关闭
- 5. 停止JavaScript关闭窗口
- 6. WPF:停止关闭ContextMenu
- 7. 停止UIPopover自动关闭
- 8. AVD不会停止关闭
- 9. 停止EIdWinsockStubError,关闭Internet Explorer时出现WSACancelBlockingCall错误
- 10. 当错误发生时,jquery对话框停止关闭?
- 11. 防止从关闭
- 12. Python错误:连接中止 - 网络已关闭
- 13. 错误关闭
- 14. Python:错误不停止脚本
- 15. 停止从关闭点击一个下拉开关点击
- 16. Python和Pynotify错误“gio.Error:连接关闭”
- 17. python中的memoization,关闭一个错误
- 18. Python中的光标关闭错误MYSQLConnection
- 19. Python关闭Toplevel窗口错误
- 20. 活动停止/关闭时音乐服务停止?
- 21. ZeroRPC python服务器异常,当试图停止或关闭
- 22. 如何在Microsoft Windows中执行时立即停止Python关闭
- 23. Java停止进程和关闭流
- 24. pyqt4 - QTimer停止关闭按钮时
- 25. 强行关闭时停止android服务
- 26. 如何停止/关闭SignalR服务
- 27. 关闭窗口停止php脚本?
- 28. 如何停止Powershell WPF窗体关闭
- 29. 停止我的相机关闭
- 30. 当Modal关闭时停止Youtube播放
对于那些使用一个批处理文件:我的批处理文件以前包含了一行'python -m Projects'来启动Python并自动导入我的Projects模块。将其更改为`cmd/K python -m Projects`,它的工作方式与广告一样,在发生错误后cmd控制台保持打开状态。 – 2013-06-07 22:46:35