imp
我正在尝试根据要使用的模块重新实现一些代码importlib
。imp.find_module
函数和之间存在细微差别importlib.find_loader
:
# Using imp find_module
>>> import imp
>>> imp.find_module("abc", ["some/path/module.py"])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python3.3/imp.py", line 220, in find_module
raise ImportError(_bootstrap._ERR_MSG.format(name), name=name)
ImportError: No module named 'abc'
# Using import find_loader
>>> import importlib
>>> loader = importlib.find_loader("abc", ["some/path/module.py"])
>>> loader.path
'/usr/lib64/python3.3/abc.py'
看起来importlib
正在回退到系统库,同时以独占方式imp.find_module
使用path
参数,最终引发异常。
如何强制importlib.find_loader
使用特定路径?