回答
import sys
sys.modules.keys()
讓所有進口當前模塊的近似值只將檢查globals()
的模塊:
import types
def imports():
for name, val in globals().items():
if isinstance(val, types.ModuleType):
yield val.__name__
這不會返回本地進口或非模塊進口如from x import y
。請注意,這將返回val.__name__
,因此如果您使用import module as alias
,您將獲得原始模塊名稱;如果你想要別名,可以使用yield name。
或者你可以找到sys.modules與全局變量的交集,並且根本不做任何類型測試。 – Marcin 2013-10-15 15:15:34
最後,我認爲使用`list(imports())`列出所有導入的模塊會更好。 – 2014-03-07 19:46:26
這是您重新定義導入的模塊名稱時唯一返回完整模塊名稱的解決方案。例如,如果你將`numpy導入爲np`,這將返回`numpy`,而另外兩個建議將返回`np`。 – 2015-08-09 15:16:52
print [key for key in locals().keys()
if isinstance(locals()[key], type(sys)) and not key.startswith('__')]
找到sys.modules
的交叉口globals
:
import sys
modulenames = set(sys.modules)&set(globals())
allmodules = [sys.modules[name] for name in modulenames]
它的實際工作挺好用:
import sys
mods = [m.__name__ for m in sys.modules.values() if m]
這將創建一個列表與導入的模塊名稱。
如果你想從腳本外面做:
from modulefinder import ModuleFinder
finder = ModuleFinder()
finder.run_script("myscript.py")
for name, mod in finder.modules.iteritems():
print name
這將打印由myscript.py加載的所有模塊。
此代碼列出了你的模塊導入模塊:
import sys
before = [str(m) for m in sys.modules]
import my_module
after = [str(m) for m in sys.modules]
print [m for m in after if not m in before]
,如果你想知道什麼外部模塊來安裝新的系統上運行代碼應該是有用的,而不需要再試試再次。
它不會列出從其導入的sys
模塊或模塊。
比方說您已經導入數學和重:
進口數學,重新
現在看到的一樣使用
打印(DIR ())
如果您在導入之前和導入之後運行它,可以看到差異。
- 1. 如何導出ES6模塊,並導入
- 2. 如何獲取python模塊導入的模塊列表
- 3. 模塊出現在模塊列表,但無法導入
- 4. ES6中模塊的導入和導出
- 5. 如何在TypeScript中使用systemjs導入和導出模塊?
- 6. Python(2.7):如何避免導入的模塊出現在我的模塊中?
- 7. 導入模塊
- 8. 導入的模塊打印出無
- 9. 。導入[模塊] - >導入錯誤:無法導入名[模塊]
- 10. 如何將Python模塊導入與導入模塊名稱相同的包中?
- 11. 如何導入python類的模塊?
- 12. 如何導入我的模塊?
- 13. 如何導入Android的實驗模塊
- 14. 計劃中模塊的導出列表
- 15. 如何使用Javascript ES6 ES2015模塊將常量直接導出/導入到導入模塊名稱空間?
- 16. 如何導入的功能的模塊,並通過模塊
- 17. 列表中的模塊無法導入
- 18. 如何僅列出(凍結)我的項目導入/需要的Python模塊
- 19. 何處導入模塊
- 20. 如何使用webpack CLI輸出可導入的模塊?
- 21. 如何導入一個模塊一個模塊(ocaml的)
- 22. 如何在JavaScript中使用define導入模塊的子模塊?
- 23. Pypi模塊的模塊導入錯誤
- 24. 節點js模塊如何獲取導出函數的列表
- 25. 如何解析從模塊導出的命名ES6/ES2015列表?
- 26. 如何重新導出另一個模塊的默認導出?
- 27. 從導入模塊的模塊中導入功能
- 28. 導入模塊時出錯處理
- 29. 導入模塊時出現問題
- 30. 導入張量流模塊時出錯
有時候(例如:使用`ipython --pylab`)Python解釋器啓動並加載了預定義的模塊。問題仍然存在,關於如何知道使用的別名o_O – yota 2013-02-14 09:56:11
我不認爲在本機Python中是可能的,但是這個前面的問題可能有所幫助:http:// stackoverflow。com/questions/2572582/return-a-list-of-imported-python-modules-in-a-script – parent5446 2011-02-01 01:52:49