Chr*_*nds 10 python import python-import python-2.7 python-3.x
我正在阅读如何检查是否已导入python模块并且说明似乎很清楚,检查中的模块sys.modules.这正如我在Python 2中所期望的那样,但不适用于Python 3(3.5和3.6测试).例如:
Python 3.6
>>> import sys
>>> 'itertools' in sys.modules
True
Run Code Online (Sandbox Code Playgroud)
Python 2.7
>>> import sys
>>> 'itertools' in sys.modules
False
Run Code Online (Sandbox Code Playgroud)
我注意到,itertools在Python 3 sys.modules dict(<module 'itertools' (built-in)>)中被描述为"内置" ,而不是在Python 2中,所以也许这就是它在sys.modules导入之前的原因,但它没有作为内置列出.无论如何,既然itertools仍然需要在Python 3中导入,我将不胜感激.
他们已经被导入,只是不是你.解释器启动的哪些部分导致模块加载是不重要的实现细节,但是如果需要,可以跟踪可能的路径.例如,itertools导入reprlib
from itertools import islice
Run Code Online (Sandbox Code Playgroud)
由functools以下人员导入:
from reprlib import recursive_repr
Run Code Online (Sandbox Code Playgroud)
由types以下人员导入:
import functools as _functools
Run Code Online (Sandbox Code Playgroud)
由importlib以下人员导入:
import types
Run Code Online (Sandbox Code Playgroud)
这是在解释器启动时引导的,因为它是大多数导入实现的地方.
| 归档时间: |
|
| 查看次数: |
821 次 |
| 最近记录: |