インポートされたモジュールのインポート パスに影響を与えずに、特定のディレクトリからモジュールをインポートすることは可能ですか?
目的のディレクトリに一時的に置き換えるsys.path
と、インポートされたモジュールはそのディレクトリの外にあるものをインポートできなくなります。
sys.path
インポートを別のソースにフォールバックさせたくないので、ディレクトリを先頭に追加したくありません。
標準ライブラリのimp モジュールを使用すると、パスのリストを検索して、変更せずにモジュールを見つけてインポートできますsys.path
。例えば:
import imp
search_paths = [path_to_spam]
modfile, modpath, description = imp.find_module('spam', search_paths)
with modfile:
spam = imp.load_module('spam', modfile, modpath, description)