2
在處理更大的項目時,我非常熱衷於錯誤檢測和處理。我正在使用用戶可能已安裝或未安裝的一些模塊,因此我需要考慮這種可能性。動態檢測丟失的模塊(Python)
我想知道一種方法來檢測嘗試導入它們時丟失哪些模塊。目前,我有一組try/except塊監視ImportErrors並將錯誤生成模塊的名稱附加到列表中。
目前代碼:
errors = []
try:
import socket
except ImportError:
errors.append('socket')
pass
try:
import shutil
except ImportError:
errors.append('shutil')
try:
import urllib
except ImportError:
errors.append('urllib')
pass
if len(errors) > 0:
print colors.red + '[!] ' + colors.end + 'Error: The Following Module(s) Encountered Error(s): \n'
for i in range(len(errors)):
print '\t' + errors[i]
print colors.blue + '\n[*] ' + colors.end + 'Please Install/Reinstall the Listed Modules'
quit()
這種方法似乎是工作得很好,但我想的方式,將佔用較少的整體空間。使用這種多try/except塊方法的主要原因是我需要檢測哪個模塊導入有問題。
爲什麼不使用[妥善包裝(https://python-packaging-user-guide.readthedocs.org/en/latest/),使'pip'可以照顧安裝的依賴關係?通過這種方式,您可以將代碼的依賴管理責任移出您的代碼,而不必擔心如何處理錯誤。 –