社内SEの話

日々起きたことの記録用

WindowsでVirtualenvを構築して実行させる

↓プログラミングで副業を考えたらこちら↓

はじめに

Pythonを使って日々実行させる用事があるのですが、プロジェクト単位でVirtualenvを使って環境を分けています。

この状態でバッチ起動やタスクスケジューラ起動をさせる方法についてまとめました。

参考にしてみてください。

VirutalenvでのPythonプログラムの作成

フォルダ作成

mkdir StableDiffusion

cd StableDiffusion

仮想環境構築

virtualenv venv

仮想環境へ移動

.\venv\Scripts\activate.bat

(venv)があると仮想環境にいる状態になる

pip の更新

python -m pip install --upgrade pip

更新ファイルが無いみたいです。

プログラム作成

sample.py

print("Hello,World")

手動で実行

python .\sample.py

バッチファイルからVirtualenvを実行

start.bat

call D:\Python\StableDiffusion\venv\Scripts\activate
python D:\Python\StableDiffusion\sample.py
pause

実行終了後コンソール画面を閉じたい場合はpauseを外せば自動で閉じます

PowerShellからVirtualenvを実行

start.ps1

D:\Python\StableDiffusion\venv\Scripts\activate.ps1
python D:\Python\StableDiffusion\sample.py
[Console]::ReadKey() | Out-Null

実行終了後コンソール画面を閉じたい場合は[Console]::ReadKey() | Out-Nullを外せば自動で閉じます

タスクスケジューラーからスケジュール実行

プログラムの部分だけ解説します。

トリガーの部分は任意に設定してください。

実行時の状態によっては管理者権限や、ログインユーザの指定が必要な場合があります。実行時の状態を事前に把握しておきましょう。

バッチファイル

プログラム/スクリプト

D:\Python\StableDiffusion\start.bat

バッチファイルをフルパスで指定

動作確認

必ず実行できるか確認しておきましょう。

作成時に実行できないと

PowerShell

PowerShell5以前の場合

%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe

PowerShell7の場合

C:\Program Files\PowerShell\7\pwsh.exe

  • 引数

"D:\Python\StableDiffusion\start.ps1"

実行ファイルパスを登録

  • 開始(オプション)

D:\Python\StableDiffusion\

実行ファイルのあるフォルダを指定

動作確認

スケジューラ作成時に必ず実行できるか動作確認をしておきましょう。

手動でタスクスケジューラを実行してパスが通っているか確認します。

その上で目的の時間に実行できるか確認します。