2013-03-05 57 views
0

好的,這是我見過的最奇怪的事情發生在相當長的時間。所以,我像往常一樣開火vs2012,並開始一些進口。我有一個我正在使用的模塊,並通過靜態導入從我的模塊的根目錄導入它。錯誤是不正確投擲?

import os 
from foo.bar import bang 

我在解釋器中執行這些......突然之間,我的例外不起作用。我想輸入assert 1 == 2,沒有任何反應。我輸入x[1],沒有任何反應。沒有x是未定義的,沒有斷言錯誤,沒有。

好的,所以我重新啓動我的解釋器,只是做斷言聲明。它工作正常。

有沒有人見過類似的東西?什麼可能導致它? (是的,我知道這是導入的模塊,但看到它是相當多的代碼,也許開始尋找之前,我去潛入深處的地方嗎?)

[編輯]

在運行命令互動似乎也需要很長時間 - dir()花了3秒拿出一個列表8個左右的項目長。

回答

3

這裏有一個可能性:

import sys 

def hook(type, value, traceback): 
    pass 

sys.excepthook = hook 
assert 1 == 2 

在這種情況下,斷言將不再打印出來。您可以通過查看sys.excepthook != sys.__excepthook__來驗證。

注意:ipython,例如,愚蠢與此值。所以如果你正在測試這個,確保你只使用python而不是ipython

+0

非常好,果然,'sys.excepthook == sys .__ excepthook__'返回'True'。那麼問題是,該怎麼辦? :( – kreativitea 2013-03-05 21:48:33

+0

如果'sys.excepthook == sys .__ excepthook__',那麼這意味着這不是你的問題的原因。我不清楚在我的帖子中,對不起。 – 2013-03-05 21:55:44

+0

是的,我在閱讀後發現它(收回我的checkvote,但我爲你的努力留下你的讚賞。 – kreativitea 2013-03-05 21:58:09