我讀的是how to check if a python module has been imported,說明看起來很清楚,請檢查sys.modules
中的模塊。這可以像我在Python 2中預期的那樣工作,但不適用於Python 3(經過測試的3.5和3.6)。例如:爲什麼沒有在Python 3的'sys.modules'中導入的模塊?
的Python 3.6
>>> import sys
>>> 'itertools' in sys.modules
True
的Python 2.7
>>> import sys
>>> 'itertools' in sys.modules
False
我注意到,itertools
被描述爲在Python 3 sys.modules dict
(<module 'itertools' (built-in)>
)一個 '內置' 的,而不是在Python 2中,所以也許這就是爲什麼它在導入之前在sys.modules
中,但它是not listed as a built-in。無論如何,因爲itertools
仍然需要在Python 3中導入,所以我會很感激解釋。
如果您已*導入的模塊需要導入自己的模塊,那麼這些模塊將顯示爲已加載。 Python 2中可能引入了一種依賴關係,這在Python 2中是不存在的。即使加載了模塊,也需要「導入」它使其在當前範圍內可用。 –
我想你自己已經回答了這個問題:如果'itertools'已經成爲內置函數,它將在解釋器啓動時加載。 – ForceBru
是爲什麼'itertools'需要導入或者爲什麼它存在並且沒有在文檔中列出? –