バッチからanaconda環境を実行

anaconda環境でのpythonは、開発しやすく、事務用プログラムなどは、サクッと作って実用化できるんですが、毎回anaconda環境を立ち上げてからの実行になりますので、自分以外が使うときはいろいろと面倒になります。
そこで、バッチファイルをダブルクリックしたらanaconda環境から目的のpythonプログラムを起動してプログラムを実行できるようにできないかと調査してみましたので、その備忘録を記載します。

1.activate.bat

anaconda環境には、activate.batというバッチファイルがあります。

階層は、

インストール階層(通常C:\\Users\\ユーザー\\Anaconda\\)のScripts\\activate.bat

に存在しています。

これをコマンドプロンプトにて

call C:\\Users\\ユーザー\\Anaconda\\Scripts\\activate.bat

※ユーザーは任意の階層

とすると、condaが起動して、anaconda環境でpythonプログラムを実行できるようになります。

2.condaでのプログラム実行

バッチファイルに、

python program.py 

※program.pyは任意

を記述すれば、無事pythonプログラムが実行されました。

3.バッチファイル全体

cd 実行するプログラムの階層
call C:\\Users\\ユーザー\\Anaconda\\Scripts\\activate.bat
python program.py

上記バッチファイルを作成することで、anaconda環境をいちいち立ち上げなくてもanacondaで作成したpythonプログラムを一度に実行することができました。pythonプログラムのexe化も試しましたが、ロードするモジュールによってはエラーがでたり、作成プログラム毎にexe化が結構コストかかっていたので、このような形で実行できると、開発で修正したり、ユーザー側でもすぐに実行できるというちょうどバランスの良い状態になりました。

パスを参照したりするプログラムで、そのパスが変更する可能性があったりすると、プログラムの設定機能とかを追加したり、面倒な場合もあります。プログラム直書きでシンプルにしたいとき、anaconda環境ですぐに修正可能かつ、自分以外のユーザーもすぐに実行可能、という点でいろいろ役立っています。

4.参考

https://stackoverflow.com/questions/46305569/how-to-make-batch-files-run-in-anaconda-prompt