そもそもの問題
タイトル通りminicondaでpythonを管理していると「指定されたモジュールが見つかりません」と時々怒られる。pillowにopensslにlxmlとそれはもう幅広い。しかしある時conda上でscriptを実行すると何事もなく通る事が判明。これは一体どういう事だと色々ポチポチやってたらこんなメッセージが出てきた。
This Python interpreter is in a conda environment, but the environment has not been activated. Libraries may fail to load. To activate this environment please see https://conda.io/activation Type "help", "copyright", "credits" or "license" for more information.
これはcmdにpythonと入れると出てくるメッセージだがこれで原因が大体判明。シンプルにminiconda内のpython.exeを叩くとライブラリが読み込まれてないのでエラーを返す様子。つまりconda上からいちいち実行する必要があるらしい。しかしいちいちそんな事するのは面倒だろうが。ひょっとしなくてもcondaは使えない馬鹿な子なのかしら。コマンドライン一発で実行出来んもんか。
Conda Prompt本体はなにか
pathをみると「\Scripts\activate.bat」にminicondaのpathを渡していてこれがConda Prompt本体のようだ。ではactivate.batとは何かというと結局「condabin\conda.bat activate」を実行しているだけらしい。ではまず「condabin\conda.bat activate」とやらをcmd上で実行してみる。すると見慣れたcondaっぽい物になった。続いて問題のscriptを実行すると無事通った。
結論
ではあとは「condabin\conda.bat activate」と実行scriptを続けて実行させればいいのだ。しかしさてそれは一体どうするのか。まあ別に難しい事は全くなくて2つを「&&」でつないでcmdに放り込めばいい。つまりこうだ。
"...condabin\conda.bat activate" && "python scriptのpath"
次はこのコマンドを.pyに関連付けたい。しかしこのまま登録してしまうとループに入る。pyの実行コマンドにさらにpyが入ってるからだね。色々試行錯誤の結果
"...condabin\conda.bat activate" && "miniconda下のpython.exe" "%1" %*
でいいようだ。要はライブラリさえ読み込んでしまえばpython.exeを直接叩いてもいいらしい。