バッチファイルで Anaconda から Python を実行する方法 【Windows 10】

programming Python

バッチファイルから、Anaconda のコマンドプロンプトを起動して、Python のスクリプトを実行する方法についてまとめておきます。
これで、Python スクリプトをダブルクリックで実行したり、タスクスケジューラからの自動実行が可能となります。

環境: Windows 10、Anaconda と Python 3 をインストール済み

例1:.py ファイルをそのまま実行する

call C:\Users\(パス1)\Anaconda3\Scripts\activate.bat 
python C:\(パス2)\xxxx.py

使い方

① テキストエディタで、バッチファイル(例:bat1.bat)を作成し、上記のスクリプトを貼りつけてください。
② つぎに Anaconda3 のフォルダを確認して、activate.bat が入っているパスを確認し、(パス1)となっている部分を修正してください。Anaconda のインストール時の設定によりますが、上記のように、C:\Users\ の下あたりに Anaconda をインストールしているケースが多いと思います。
③ 同様に、実行したい python のスクリプトのパスを確認し、(パス2)の部分を修正して保存してください。
④ ③ のバッチファイルをダブルクリックすると Python を実行できます。
以下の例も使い方は同じです。

例1の説明

・ 1行目で Anaconda を起動するバッチファイルを呼び出しています。
・ その後、.py ファイルを実行します。

なお、Anaconda Prompt ではなく、Windows 10 標準のコマンドプロンプトを使う場合は、上記の1行目を削除してください。通常のバッチファイルの使用方法と同じになります。

例2:プロンプト画面を消す方法

複数の書き方ができますので列挙しておきます。

例2-1:Python スクリプトのフルパスを指定して実行

call C:\Users\(パス1)\Anaconda3\Scripts\activate.bat 
start pythonw C:\(パス2)\xxxx.py
exit 

例2-2:カレントフォルダを移動させて実行

call C:\Users\(パス1)\Anaconda3\Scripts\activate.bat 
cd %~dp0 
start pythonw xxxx.py
exit 

例2の説明

例2は、Anaconda プロンプトの黒画面を消して実行したい場合の例です。
具体的には、tkinter で GUI を作ってアプリ化するような場合です。Python で GUI を作ると、デフォルトでは実行時、GUI の画面と Anaconda プロンプトの画面の2つの画面が表示されると思います。
スクリプトの作成中であれば、Anaconda プロンプトが表示されたほうが便利です。
しかし、作った GUI アプリを使う段階では、Anaconda プロンプトの黒画面は邪魔です。
そこで、実行時、GUI の画面のみを残し、Anaconda プロンプトの表示を消すようにします。
例2-1をまず説明します。
① 1行目の activate.bat を実行するところは、例1と同じです。
② つぎに、バッチファイルの記載を start …で始まるよう修正します。
start とすることで、Python のスクリプトをスタートさせたら、Python の終了(GUI の終了)を待たずに、つぎの行を実行できます。またここで、”pythonw xxx.py” の形で実行するよう修正します。通常の Python スクリプトを実行する場合は、”python xxx.py” の形でコマンドを実行しますが、プロンプト画面を消して実行するためです。
③ 最後に、一連のバッチファイルのコマンドを実行&起動したら、プロンプト画面を閉じるため、末尾に exit を記載します。
バッチファイルをダブルクリックすると、Anaconda プロンプトが実行され、Python をスタートさせたら、Python スクリプトの終了を待たずにプロンプトが閉じる動きになります。

なお、毎回、(パス2)を設定するのが煩雑な場合は、例2-2のような記載も可能です。この場合は、バッチファイルは Python スクリプトと同じフォルダに入れるようにしてください。“cd %~dp0” の行で、バッチファイルのあるフォルダにコンソールのカレントフォルダを移動 (cd …)させています。これにより、フルパスを書かずに実行できるようになります。

例3: 仮想環境をアクティベートして .py を実行する

つぎは、Anaconda を起動し、すでに作成してある仮想環境(例:env01)をアクティベートさせてから、.py を実行する記載例です。

call C:\Users\(パス1)\Anaconda3\Scripts\activate.bat 
call conda activate env01 
python C:\(パス2)\xxxx.py

例3の説明:activate の自動化

・ 1行目は、例1、2と同じで、Anaconda を起動しています。
・ 2行目で、仮想環境 env01 をアクティベートさせています。仮想環境の名前を env01 としたのは例ですので、すでに設定している仮想環境に応じて、env01 の部分を書き換えてください。なお、仮想環境の設定方法については、下記の関連リンクにまとめていますので参照してください。
・ つぎに3行目で、例1、2と同様に、.py を実行しています。
これにより、仮想環境をアクティベートさせた状態で、Python スクリプトを実行できます。

※ また、余談となりますが、バッチファイルを使わずに、Python のスクリプト自体をダブルクリックして実行する方法としては、拡張子を xxx.py → xxx.pyw に変えるという手もあります。
この場合、xxx.pyw をダブルクリックして tkinter 等で作った GUI を起動させることができます。しかし、Anaconda 環境/通常のコンソール環境、import するモジュールなど、環境やスクリプトに依存して、うまく動かない場合もあるようです。

参考:タスクスケジュールで自動化する方法

バッチファイルの作成がうまくできたら、Windows のタスクスケジューラを用いて自動化ができることになります。
上記で作成したバッチファイルをタスクスケジュール化する手順について、要点をまとめておきます。

タスクスケジューラでの設定手順
① Windows 10 画面左下の検索欄に「タスクスケジューラ」と入力し、出てきたアイコンをクリックする。→ タスクスケジューラが起動する。
② 「タスクの作成…」をクリックし、以下を参考に入力、設定を行う。
全般タブ 名前: python1  (例)
トリガータブ → 「新規」ボタン → 毎日を選択 時刻:12:00:00 → 「OK」
操作タブ → 「新規」ボタン → 「プログラム/スクリプト」欄で、上で作成したバッチファイルを選択して設定する → 「OK」 (登録終わり)

タスクスケジューラの確認方法
「タスク スケジューラ ライブラリ」をクリック → 上記で登録した python1 の名前がトリガー欄に追加されていることを確認する。

→ これで設定・確認が完了です!

まとめ

Python を活用するとき、毎回、Anaconda を起動してコマンドを打つのも煩雑でしたので、バッチファイルで起動するポイントをまとめました。一度作っておくと、後が楽です。
これで、ダブルクリックやタスクスケジューラでの実行が可能となります。

なお、Python スクリプトを簡単に起動させたい場合、バッチファイル以外にも、スクリプトを実行ファイル化(exe 化)する方法もあります。以下を参考にしてみてください。

関連リンク
・ Python のスクリプトを実行ファイル (*.exe) 化する方法 【Windows 10】
・ Python で他の Python スクリプトを呼び出して実行する方法
・ Anaconda でよく使うコマンド まとめ【仮想環境設定】

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