例如,我輸入JSON像這樣import json
現在在某處碼我要檢查它是否已導入。它應該是這樣的:has_imported(module_name)
。如何檢查python模塊是否已導入?
爲什麼我問這個的原因是因爲我想了解pkgutil.walk_packages()
作品。它必須導入它列出的模塊,但由於某些原因,某些模塊不能導入。好像我必須用一個單獨的函數導入它們,但是首先這個函數需要「知道」它作爲參數獲取的模塊是否被導入。
有一些類似的問題,但我從滿意答案很遠。
例如,我輸入JSON像這樣import json
現在在某處碼我要檢查它是否已導入。它應該是這樣的:has_imported(module_name)
。如何檢查python模塊是否已導入?
爲什麼我問這個的原因是因爲我想了解pkgutil.walk_packages()
作品。它必須導入它列出的模塊,但由於某些原因,某些模塊不能導入。好像我必須用一個單獨的函數導入它們,但是首先這個函數需要「知道」它作爲參數獲取的模塊是否被導入。
有一些類似的問題,但我從滿意答案很遠。
測試在sys.modules
詞典模塊名稱:
import sys
print("sys" in sys.modules) #True
print("datetime" in sys.modules) #False
print("json" in sys.modules) #False
如果你寫你的文件的頂部'進口json',那麼你就可以確信它在該文件中導入。這並不意味着它會被導入*到處*(在其他文件中)。這可能是造成混亂的原因嗎?或者你是否想知道是否有任何一個軟件包通常是由其他任何模塊導入的? (如果是這樣,什麼?) – deceze
如果你想知道如何'pkgutil.walk_packages()'的作品,爲什麼不[僅僅看它的源代碼(https://github.com/python/cpython/blob/b9c3da5c89c66dcccf382e8f196746da2a06d4cc /Lib/pkgutil.py#L53-L107)? – Chris
@deceze不,不是。我使用'walk_packages'導入模塊(據我所知它可以即時導入模塊),但列表中的某些模塊似乎並未被導入。我只是想弄清楚爲什麼, – Foobard