在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