2014-01-08 62 views
0

我使用Pydev來使用Eclipse進行Python開發。如何查看python中IOError的源代碼?

控制單擊源中的任何模塊名稱(例如tracebacksubprocess)會在另一個窗口中打開其源代碼。

但是,當我控制點擊IOError pydev不顯示我的來源?

這是爲什麼? IOError來自哪個模塊,爲什麼它的源代碼不可用?

編輯:

雖然原來的問題的答案,所以我想看看源的原因是看到IOError.errno可以採取什麼樣的價值觀。例如,errno2 - 我相信 - 當文件找不到時。我想看到所有其他的可能性。

我該怎麼做?

+1

我認爲,這是因爲它生活在[ 'exceptions.c'](http://hg.python.org/cpython/file/5609135c6e86/Objects/exceptions.c);-) – mgilson

+0

正如mgilson所說,它直接在C中實現,而不是在Python中實現。 – aIKid

+0

通常,IDE根據'__file__'屬性找到文件,該屬性不包含'IOError'。 – mgilson

回答

0

這是一個內置的異常類型和模塊exceptions中定義:

http://docs.python.org/2/library/exceptions.html#module-exceptions

它內置(大概都定義在C-實現?)。

對於其他模塊,你可以找到他們在那裏通過加載的文件:

>>> import httplib 
>>> httplib.__file__ 
'C:\\Python27\\lib\\httplib.pyc' 

但對於模塊異常,您可以:

>>> import exceptions 
>>> exceptions.__file__ 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute '__file__'