我已經編寫了一個python程序,它在eclipse下成功測試過。然後我用pyinstaller將它作爲一個.exe文件執行。當程序引發異常時,cmd窗口將立即退出。我想留在這個窗口仔細看看這個例外。我該怎麼做 ?謝謝。如何在引發異常時留在cmd窗口中?
回答
正如Turdy女士提到的,如果應用程序具有與exe相同的行爲,則應先在命令提示符或終端中運行它。
你可以用python -m pdb script.py
執行一個python腳本,它將進入調試器。通過按C
繼續運行它,然後在引發異常時它會中斷。
謝謝你的回答。但我已經在eclipse中測試了這個程序。並且在IDE中沒問題。所以我想通過pyinstaller把它放到.exe中。我想要.exe引發異常,因爲我有爲了警告用戶,在例外情況下寫了一些意圖。但是,當拋出異常時,窗口如此迅速地關閉。 –
這是因爲python腳本已經完成了它的工作。你可以這樣做:
import time
# your code
...
time.sleep(20)
這會給你20秒內看到結果。 20秒後,cmd窗口將保留20秒,以便您查看結果。您可以更改您的需求時間。
謝謝您的回覆。但是當程序拋出異常時會發生。我在代碼中添加了time.sleep,但效果不佳。 –
@ user3093493如果程序拋出一個異常,您應該在IDLE或某些其他解釋器中運行腳本來查找原因而不是運行exe。在你確認你的代碼是正確的,然後使用pyinstaller。或者您可以記錄代碼中可能發生異常的信息。並且考慮到打包程序的步驟,因爲我在某些時候打包python腳本失敗了。 –
謝謝。是的,我的程序已經在eclipse下測試過了,所以我想用pyinstaller來發布它。而且當異常提出時,會有一些警告給我寫在異常部分的用戶。問題是在窗戶關閉之前的短時間警告停留。 –
你可以嘗試raw_input
保持屏幕:
import traceback
try:
# do something dangerous
except Exception, e:
print 'Error:', e
print traceback.format_exc()
raw_input('Input anything to end...')
- 1. 如何取消並在Task.WhenAll引發異常時引發異常?
- 2. 如何在引發異常時保留響應標頭?
- 3. 在引發異常後保留變量
- 4. JavaScript:父窗口拋出的異常發生在子窗口中
- 5. 如何在Delphi中引發異常?
- 6. 如何在VB.NET中引發異常
- 7. 如何在Jinja2宏中引發異常?
- 8. 如何在rails中引發異常
- 9. MySQL在創建表時引發異常,但僅在Java中引發異常?
- 10. 從cmd在窗口
- 11. 在Python 3中已經存在異常時引發異常
- 12. 在PHP中引發異常?
- 13. 在Rcpp中引發異常
- 14. 在greenlets中引發異常
- 15. 如何引發運行時異常
- 16. 如何在Postgres + SQLalchemy中的列名太長時引發異常?
- 17. 如何在ContextDecorator中引發Tornado超時異常?
- 18. 如何在引發異常時中止Ruby腳本?
- 19. 在引用者中引發異常
- 20. Xcode在重構時引發異常
- 21. 如何在CMD窗口中獲取IPV4變量並在新的CMD窗口中Ping命令
- 22. 如何在使用批處理文件時關閉cmd窗口?
- 23. 如何在運行批處理文件時隱藏cmd窗口?
- 24. WPF Catch異常由窗口內的用戶控件引發
- 25. 如何在開發中的rails上引發ruby異常?
- 26. 如何在WPF中調整窗口大小時保留對象?
- 27. 如何從Java中引發Jython異常?
- 28. 在trascoding進程中的窗口cmd
- 29. 如何測試在調用socket.send時是否引發異常
- 30. 如何在單元測試簡單方法時引發異常
你可以打開終端,然後再從那裏運行您的程序? – msturdy
是的,如果沒有異常發生,我可以運行我的程序。 –