2011-03-22 75 views
4

從python腳本中暫時隱藏已安裝模塊以測試它如何處理未安裝模塊的環境的最佳方法是什麼?在測試python腳本時模擬缺乏依賴關係

我想避免爲了測試而卸載模塊。

+0

不包括它? – 2011-03-22 02:55:31

+0

@Michael:你的意思是不要導入它?我想我可以這樣做,那就是不會測試我的條件導入,這不是什麼大問題。 – Acorn 2011-03-22 03:01:21

回答

6
import sys 
sys.modules['numpy']=None 

設置sys.modules['numpy']=None使Python的認爲它已經嘗試和失敗導入numpy。在進口numpy隨後嘗試現在提高ImportError

try: 
    import numpy 
except ImportError as err: 
    print(err) 
    # No module named numpy 

刪除sys.modules['numpy']允許numpy要導入正常:

del sys.modules['numpy'] 
import numpy 
3

更改您的Python路徑。

sys.path中的目錄順序顯示了搜索順序。

您可以在測試中更改sys.path以更改搜索順序。

+0

只需確保將其放回! – 2011-03-22 03:06:31

+0

@Winston Ewert:「Afterwords?」單元測試有「setUp」和「tearDown」來改變環境,那是你在說什麼? – 2011-03-22 09:45:42

+0

是的,否則你的其他測試會中斷。 – 2011-03-22 12:47:20