November 26, 2017 ポスト合唱コンクール
昨日学校の合唱コンクールがありました!Frodoのクラスはボロボロwですけど、なんとBourruのクラスが優勝したんですよ! 同学年のクラスの中でFrodoのクラスだけ賞にかすりもしないっていうw やる気と練習量の差が如実に出ましたね! やっぱり三年間やってきて最後だということもあり、若干の感傷がないわけでもないんですがそれは置いといて。 たまにはPythonistaっぽいことしないとなぁということで今回はこんなものを。 このモジュールはPythonで何か作ったけど依存関係まで考えて配布するのめんどくさい!っていうときにimport分の代わりとしてresolve関数を使えば配布先の環境にモジュールが存在しなかった場合、自動でこのモジュールと同階層にあるmodulesディレクトリに依存関係まで含めて要求モジュールをインストールしてくれるというものです。 ただしpipに依存しているので、配布先の環境にpipがなければ一緒ですが...。最近の環境でPython入っているのにpipがないということはないと思うのですが、Pythonのバイナリを含めて配布する場合は無理ということになってしまいます。 これからの課題はそこですね...。 一応resolve関数の解説 引数の詳細 引数名(位置指定の場合は位置) 変数型 意味、効果 mod_name (1番目) str import時のモジュール名 globals (2番目) dict import先の名前空間 (globals()で取得可能) mod_distname (3番目) str PyPI上のモジュール名 (省略可能・省略した場合mod_nameと同値) この関数はmod_nameで指定された名前のモジュールをglobalsで指定された名前空間にインポートします。 標準関数の__import__と同等の機能を提供しますが、mod_nameで指定されたモジュールが見つからなかった場合、pipを用いてこのモジュールと同階層のmodulesディレクトリにモジュールをインストールします。 mod_distnameが指定された場合、pipでインストールするときのモジュール名としてmod_distnameが使用されます。 mod_distnameが必要になる場合の例 P