バッチからanaconda環境を実行

python

pythonのexe化はめんどくさいよね・・・

windowsだったらバッチファイルで実行すれば?

anaconda環境のpythonプログラムなんだけど・・・

こんなやり方はどうかな?

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

0.バッチ実行の大まかな流れ

①実行するプログラムの場所へcdコマンドで移動

②conda環境を有効にする

③conda環境でpythonプログラムを実行

の3ステップになります。

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

cdは、コマンドプロンプトで階層移動するコマンドです。

callで、conda環境を有効にします。1で説明したactivate.batを呼び出しています。

最後に、pythonプログラムを実行します。

4.まとめ

上記バッチファイルを作成することで、anaconda環境をいちいち立ち上げなくてもanacondaで作成したpythonプログラムを一度に実行することができました。

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

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

5.参考にしたサイト

How to make batch files run in anaconda prompt
After installing anaconda3 in windows, I can run python commands from the anaconda prompt, but not from the windows command prompt. I would like to make a deskt...

タイトルとURLをコピーしました