web-dev-qa-db-ja.com

Windowsのバッチを介してPythonスクリプトをスケジュールします(Anacondaを使用)

私は毎日実行するスクリプトがあり、そのスケジュールを作成したいのですが、既に次のバッチファイルを試しました。

start C:\Users\name\Miniconda3\python.exe C:\script.py

そして、いくつかの基本的なpythonコマンドをその中で実行できません。問題は、実際のスクリプトがAnacondaと共にインストールされたいくつかのライブラリを使用することです。負荷。

私はWindowsで作業していて、Anacondaを起動して毎日そこでスクリプトを自動的に実行する方法を見つけることができません。

13
Cristian M.

必要なパッケージを使用してAnaconda環境を作成し、その環境からpythonを使用してスクリプトを実行することをお勧めします。Anaconda環境について読む こちら

例えば...

Cristians_envという名前の環境を作成するとします

conda create --name cristians_env

必要なパッケージをインストールします

conda install pandas

次に、バッチスクリプトからこれを実行するだけです(Anaconda 2を使用している場合)。

start C:\Users\name\Anaconda2\envs\cristians_env\bin\python C:\script.py

そして出来上がり!バッチスクリプトからanaconda環境を使用しています!

8
knowa42

pythonを環境から直接呼び出す場合は少し注意が必要です。アクティベート関数の内部が変更されたかどうかはわからないためです。

私は私を助けるために基本的なバットスクリプトを使っています。

SET log_file=%cd%\logfile.txt
call C:\Anaconda3\Scripts\activate.bat
cd \script_directory
python script.py arg1 arg2 > %log_file%

このスクリプトは、バットが実行される場所にかかわらずログファイルを保存し、アクティブ化(この場合は標準)を通じて適切な環境を呼び出し、さらに調査するためにすべてのstdoutをログファイルに送ります。

次に、Windowsタスクスケジューラをスクリプトにポイントし、ログファイルを表示するホームディレクトリを設定します。

3
Mikko Jaakkola

私は数日前に同様の問題を抱えていました。私が発見したのは、anacondaプロンプトがあなたの通常のcmdプロンプトに他ならないということです'activate.bat'スクリプトを実行した後、anaconda 'Scripts'フォルダーにあります。 pythonスクリプトをanacondaで実行するには、バッチファイルに2行を書き込むだけです(メモ帳を開いて、以下の行を書き込みます。でファイルを保存します。 bat拡張子)

  1. c:\ .... path to anaconda3\Scripts\activate.batを呼び出します
  2. python C:\ path to your script\Script.py

次に、このバッチファイルを希望どおりに実行するようにスケジュールすると、問題なく実行されます。

1
Harsh Limaye

解決策を見つけたので、「activate.bat」ファイルを「C:\ Users\yo\Miniconda3\Scripts」にコピーして、名前をschedule.batに変更し、ファイルの最後にスクリプト(コピーを貼り付け)を追加しました。

次に、schedule.batを毎日実行するタスクをWindowsでスケジュールできます

0
Cristian M.