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使用特定路径?