YutaKaのPython教室

Python の文法やライブラリ、API、環境構築について画像・動画・ソースコード付きで徹底解説!

バッチファイルでAnaconda環境を指定、python実行!

自作Pythonスクリプトを、バッチファイルのダブルクリックだけで実行できるととても便利です!

しかし、いざPythonスクリプト実行用のバッチファイルを作ってみようとすると…

  • どうやってバッチファイルから実行するの?
  • Anacondaの仮想環境を指定する方法がわからない…

といったトラブルに直面してしまった方も多いかと思います。

そこで、バッチファイルでAnacondaの仮想環境を指定、Pythonスクリプトを実行する方法を紹介します。

Anaconda仮想環境指定バッチ作成の流れ

仮想環境をしない最も単純なバッチファイルの場合は、次のスクリプトでOKです。

>> (python.exeの保存場所)/python.exe  (pythonスクリプトの保存場所)/script_name.py

しかし、Anacondaの仮想環境を指定する場合には、以下のひと手間が必要になります。

  • 仮想環境指定に必要なファイルのパス準備
  • バッチファイルの作成(仮想環境指定+スクリプト実行)

と言っても、必要なファイルは、Anacondaのフォルダに準備されてるので安心してください。

以下で、パスの準備、バッチファイル作成方法の順に解説していきます。

仮想環境指定に必要なファイルのパス準備

Anacondaの仮想環境を指定する場合、次の3つのファイルのパスを事前に調べておきます。

  1. 仮想環境をActivateするための特殊なバッチファイル
  2. 仮想環境内のpython.exeのパス
  3. 実行するpython.pyファイルのパス

1つ目:「仮想環境をActivateするためのバッチファイル」

以下の場所にあるはずなので、確認しておきましょう。

  • C:\Users\USER_NAME\Anaconda3\Scripts\activate.bat

ここで、USER_NAMEは、ログインしているWindowsユーザー名です。

2つ目:「仮想環境内のpython.exe」

こちらは、以下の場所にあるはずです。

  • C:\Users\USER_NAME\Anaconda3\envs\ENV_NAME\python.exe

ここで、ENV_NAMEは、指定したい仮想環境名です。

3つ目:「実行するpython.pyファイルのパス」

これは自分で作成したものですね。パスを確認しておきましょう。

環境指定、スクリプト実行するバッチ作成例

バッチファイルを作成する場合は、次の手順を踏みます。

  • メモ帳を開く
  • バッチファイルの中身を記述(下記のサンプルを参考にしてください)
  • 「ファイル名.bat」で名前を付けて保存

Anacondaの仮想環境を指定して、pythonスクリプトを実行するバッチの例は以下の通りです。
rem行は、コメント行なので削除OK)

rem文字コードをUTF-8に指定(パスに日本語がなければ不要)
chcp 65001
 
rem 仮想環境をActivateするための特殊なバッチファイルを起動
call C:\Users\USER_NAME\Anaconda3\Scripts\activate.bat
 
rem 仮想環境をActivate
call activate ENV_NAME
 
rem 作業フォルダの指定(割愛可能)
cd 作業フォルダのパス
 
rem python.exeでスクリプトを実行
C:\Users\USER_NAME\Anaconda3\envs\ENV_NAME\python.exe 実行するスクリプトのパス.py
 
rem コマンドプロンプトの画面を残す場合(残さない場合不要)
pause

上のバッチファイルでは、cdで作業フォルダを指定しています。

バッチ実行時の作業フォルダは、デフォルトだとバッチファイルの保存場所になります。

スクリプト実行時、作業フォルダがルート(相対パスの基準)になるので、スクリプト内で相対パスを使用しているときは特に注意が必要です。

例えばデフォルトのままだと次のようになります:

  • "out.txt"を出力すると、バッチファイルのあるフォルダに"out.txt"を作成
  • "input.txt"を入力する場合、バッチファイルのあるフォルダに"input.txt"にファイルが必要

バッチファイル実行例

次のスクリプトをバッチファイルで実行すると、作業フォルダに'Hello_world'と書かれたテキストファイルが作成されます。

f = open('./hello_file.txt', 'w')
f.write('Hello_world')
f.close()

実行イメージとしては、次の画像の通りです。

おわりに|Pythonで作業を自動化しよう!

今回は、Anacondaの仮想環境を指定して、Pythonスクリプトを実行するバッチファイルの作り方を紹介しました。

この方法は、自作の作業自動化スクリプトとの相性がいいですね。

≫pyperclipの使い方:おススメ置換の自動化スクリプト付き!
≫pyperclipの使い方:おススメ置換の自動化スクリプト付き!
pyperclipの使い方を、おススメ実例付きで紹介します!pyperclipは、簡単に言うと、普段手作業で行っているコピペをpythonスクリプトに組み込んじゃおう!というモジュールです。非常にシンプルな機能ゆえに、応用しだいでは絶大な業務効率化の効果を発揮します!
www.yutaka-note.com/entry/pyperclip
 
≫【レビュー】退屈なことはPythonにやらせよう | 単純作業は自動化
≫【レビュー】退屈なことはPythonにやらせよう | 単純作業は自動化
名著「退屈なことはPythonにやらせよう 」をレビュー!単純作業を自動化して、自分が本当にしたいことのために時間を確保していこう!所要時間やできるようになったことを紹介!この本を参考にして作成した、自作自動化スクリプトも紹介しています!
www.yutaka-note.com/entry/python_jido
 

あまり知られていませんが、バッチファイルはショートカットの割り当ても可能です。こちらの記事を参考にしてみてください。

≫【超簡単!】Pythonスクリプトをショートカットキーで実行する方法
≫【超簡単!】Pythonスクリプトをショートカットキーで実行する方法
Pythonで作成したスクリプトをショートカットキーに割り当て、いつでも実行できるようにする方法を紹介します。①スクリプトをバッチファイルから実行できるようにする②バッチファイルにショートカットを割り当てる。という手順を踏みます。この手順を一つずつ詳しく解説していきます!
www.yutaka-note.com/entry/shortcut001