如果用戶嘗試運行嘗試導入尚未安裝的模塊的python腳本,我想實現一些友好的錯誤消息。這包括打印如何安裝缺少的模塊的說明。這樣做將是把進口圍繞try..catch塊關於爲缺少的模塊導入的Friendlier錯誤消息
的一種方式,但是這是一個有點難看,因爲它會變成一些簡單的像
import some_module
到
try:
import some_module
except ImportError, e:
handle_error(e)
,它將不得不被添加到每個文件。此外,ImportError似乎沒有在任何地方存儲缺失模塊的名稱(除了在消息中),因此如果您需要知道名稱(比如我),則必須在每次導入時分別放置try..catch, 。解析模塊的名稱不是選項,因爲ImportError攜帶的消息可能會更改爲python版本,並取決於用戶的區域設置。
我想我可以使用sys.excepthook來捕獲所有的異常,並通過除了ImportError之外。 還是有可能定義類似
safe_import some_module
會表現得像我想要的嗎?
有沒有人知道這個問題的任何現有解決方案?
我想,這可能是最好的建議的解決方案。它不依賴任何特殊的「技巧」,因爲它應該非常強大。同時,它不需要對源代碼進行任何更改(除了可以添加正確的路徑到sys.path,這可以輕鬆處理)。 – pafcu 2009-10-25 14:06:49