如何獲得所有可用的Python模塊列表?Python:模塊的完整列表
我不想要模塊的模塊。只是在sys.path
中提供的所有模塊的基本列表。
help('modules')
不是解決方案,因爲我希望它可用作變量,並且它導入那些有副作用的模塊。
編輯:副作用我的意思是像圖書館的http://kivy.org/ kivy,這使得使用的事實,一旦你導入它的代碼被執行。
如何獲得所有可用的Python模塊列表?Python:模塊的完整列表
我不想要模塊的模塊。只是在sys.path
中提供的所有模塊的基本列表。
help('modules')
不是解決方案,因爲我希望它可用作變量,並且它導入那些有副作用的模塊。
編輯:副作用我的意思是像圖書館的http://kivy.org/ kivy,這使得使用的事實,一旦你導入它的代碼被執行。
pkgutil - 公用事業支持包
這將產生一個元組上sys.path的所有子模塊:
pkgutil.iter_modules()
,看看有什麼裝,看:
sys.modules
「這是一個將模塊名稱映射到 已加載模塊的字典」
加載的模塊列表:
sys.modules.keys()
「已經被加載」。 OP希望所有可加載模塊。 – liori 2012-03-30 18:06:45
編輯第一個答案 – 2012-03-30 18:15:54
@jsbueno。 pkgutil * not *如何回答這個問題? afaict,它給出了他所要求的:「sys.path中所有可用模塊的列表」。 – 2012-03-30 18:44:20
使用了Python的走來安裝外部腳本 「是pydoc」:在命令行中鍵入 :
$ pydoc modules
是pydoc可以從內Python的使用爲好,讓它走一切可用的方法之一是:
all_mod = []
pydoc.ModuleScanner().run(callback=(lambda *a: all_mod.append(a[1])), onerror=lambda *a:None)
print all_mod
一個好主意,但是它會導入這些模塊(如果你已經安裝了'kivy',可能會產生副作用 – 2012-03-30 19:18:09
pydoc會手動檢查所有可用的文件,然後導入它們 - 如果你不想導入部分,我想你必須查看pydoc代碼並從中複製才能看到所有可用的模塊(包括zip文件和蛋中的模塊)。 – jsbueno 2012-03-30 20:27:33
我看不出這是一個重複的問題,因爲'pkgutil'甚至沒有被提及另一個線程,這裏有一個明確的限制:**沒有副作用!** – 2015-12-19 13:21:10