finder?手軽な実装なのでimporterで良いはず。簡単なものなので実装は手軽に終わる。loaderを自作する時に注意点が幾つかある。以下のようなもの(詳しくはこの辺りにも書いてある)。types.ModuleType)finder.find_spec()importerとして扱うのならfind_spec()で返すloaderにselfを渡せば良いはい。作ったimporterを有効にするためにhookに登録する。今回の場合はsys.meta_pathの方が手軽ですね。sys.meta_path.append(DummyImporter)実行してみる。手元で実行したい場合のgisthttps://gist.github.com/podhmo/176ca9de9e47a04e98af78a54a621a62sys.path_hooksを使いたい場合sys.path_hooksを使いたい場合には以下の様なコードが必要になる。make_finder)はい。その他便利な説明の記事についてちなみにimportシステムの拡張について、この記事の内容が全体を把握するのに手軽で便利だった。Pythonpyfoの内部の話について書かれた内容っぽい。pythonの変換をするというのはちょっと面白い。2019年7月24日コメントの部分のsys.path[0]を参照するのがよくわからないっっていうのには同意。find_spec()などについてfind_spec()などのbaseクラスで定義されていないメソッドについて、typeshedの方の型定義の方を覗いてみるのも良いかもしれない(例えばMetaPathFinderのあたり)。以下の様なコメントが書かれていてかなしい。存在の有無で分岐しているため。classでfind_spec()を定義してしまうとその分岐が動かなくなってしまうという判断から(レガシーとの付き合いという感じ)。finder)defaultの実装だけを気にするなら、実行しようとしてみてNotImplementedを拾って古い方の処理に分岐というやり方もありかもだけど(2.xを特別扱いしたくないですよね的な気持ち)。してしまうと古い方に対応した外部のコードでNotImplementedを拾えない場合がありそうで怖いと言うような話(と理解している)。FileFinderがどうやって利用するloaderを選択しているか実際初期化時に呼ばれるコードは以下のようなもの。そんなわけで.pyと.pycや拡張モジュールの読み込みで使われるloaderが変わる。FileLoaderのsys.pathを見る部分についてここでファイルの存在を確認していた。sys.path_hooksに追加するときにはここに注意。serverが欲しくなることが...2017-08-05不要なimportをlazyにしたい(ついでにちょっとしたsetupも呼びたい)不要なimportをlazyにしたい場合がある。componentという機能を追加した月別アーカイブはてなブログをはじめよう!podhmoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。