🛠️
Python スクリプトを Windows 起動時に自動実行したい
動機
Python で書いたアプリを Windows 起動時に自動的に実行させたくなりますよね
しかし開発時に venv で仮想環境を作成した場合は実行が少々めんどくさい
そんな自分のために powershell でスクリプトを書きました
venv 環境に対応した powershell スクリプト
プロジェクトフォルダ名(例: foobar)と同名の python スクリプト名(例: foobar.py)になっていることが必要です
フォルダ構造例
foobar/
├── .venv/
├── README.md
├── foobar.py
└── requirements.txt
スクリプト
run.ps1
# -*- coding: utf-8 -*-
# 実行するディレクトリのパスを取得
$pwd = Split-Path -Path $MyInvocation.MyCommand.Path -Parent
# ディレクトリに移動
Set-Location -Path "$pwd"
# ディレクトリの basename を取得
$basename = Split-Path -Path $pwd -Leaf
# 実行対象のスクリプトは ${basename}.py
$script = "$pwd\$basename.py"
# venv 環境が存在するなら activate
$venv = ".venv\Scripts\Activate.ps1"
if (Test-Path -Path "$venv") {
& "$venv"
}
# pythonw のフルパスを取得
$py = (Get-Command pythonw).Definition
# python スクリプトを実行
Invoke-Expression "$py $script"
この powershell スクリプト run.ps1 を python スクリプトのあるフォルダに配置して、そのショートカットをスタートアップフォルダに置くだけです。
foobar/
├── .venv/
├── README.md
├── foobar.py
├── requirements.txt
└── run.ps1

スタートアップフォルダの例
ショートカットアイコン作成の豆知識
convert sample.png -define icon:auto-resize=256,128,64,32,16 sample.ico
最後に
非常に簡単に python スクリプトを Windows 起動時に実行できるようになりました
Enjoy!!
Discussion