代わり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
特定のパスのみを使用するように強制するにはどうすればよいですか?