2010-03-31 79 views
3

我想我的模塊列表,被告知:的Python:模塊列表(>>>幫助(「模塊」)不工作)

>>> help('modules') 

會做的伎倆。但我只是得到

請稍等片刻,我收集所有可用模塊的 列表...

在過去的前10分鐘,我殺了它。

任何人都知道可能是什麼原因造成的?或者我怎麼能看到我的模塊? (系統Ubuntu的9.10/Python的2.6.4)

感謝,

回答

1

安裝IPython中

$ sudo apt-get install ipython 

然後運行IPython中,並鍵入import <tab>其中<標籤>是tab鍵

如果您已經安裝了Python-pygraphviz包,您可以使用

import pygraphviz 
+0

太棒了!你也可以使用這個來查看班級內的所有項目。謝謝! – Dan 2010-03-31 15:51:23

1

如果你想看到你有進口版(直接或間接)的模塊,

>>> import sys 
>>> print sys.modules 

help('modules')是關於所有可用的模塊 - 即如果您願意,您**可以*導入的模塊。它對我來說不會像它對你那樣長久,但如果你已經安裝了足夠的擴展,它可能會有成千上萬個「潛在」模塊顯示出來,所以這可能需要一點也不奇怪的時間收集這些信息。

+0

我主要試圖找到一個列表,以便我可以看到我最近安裝的graphviz模塊的名稱,它看不到我嘗試過的任何名稱。 – Dan 2010-03-31 05:45:33

3

help("modules")可能需要很長時間,因爲它必須在我之前導入每個模塊t可以搜索該模塊的子模塊路徑。如果任何模塊的代碼不在if __name__ == "__main__":後面,並且該代碼需要用戶輸入或進入無限循環或出於任何其他原因掛起,則這可能是個問題。

引擎蓋下,help("modules")電話pkgutil.walk_packages,表現出上述「進口一切」的行爲。作爲替代方案,您可以撥打iter_modules不是導入所有內容,缺點是隻能迭代頂層模塊。

>>> import pkgutil 
>>> print [tup[1] for tup in pkgutil.iter_modules()] 
['colorama', 'xlrd', 'BeautifulSoup', 'BeautifulSoupTests', '_ctypes', ... 
#snip... 
..., 'pywin', 'win32ui', 'win32uiole'] 

這也將錯過一些內置的模塊,你可以使用sys分別獲得。

>>> import sys 
>>> sys.builtin_module_names 
('__builtin__', '__main__', '_ast', '_bisect', '_codecs', ... 
#snip... 
..., 'thread', 'time', 'xxsubtype', 'zipimport', 'zlib')