「Pythonスクリプトを実行したはいいけれど、いつ終わるかわからない…」「長時間かかる処理を走らせたのに、エラーが出たことにしばらく気づかなかった…」
こんな経験、ありませんか?
プログラムの実行完了やエラー発生にすぐに気づけないと、その間はただ待つしかなく、他の作業に集中できないだけでなく、時間のムダも生まれてしまいますよね。業務効率化を目指すエンジニアにとって、これは本当に面倒な問題です。
でも大丈夫です! 今日は、そんなあなたの悩みを一瞬で解決できる方法をご紹介します。Pythonを使って、処理が終わった時やエラーが発生した時に、パソコンのデスクトップに「ポップアップ通知」を出す方法です。
この記事を読めば、もうPythonの処理の終わりをじっと待つ必要はありません。サッと通知を受け取って、次の作業に取り掛かれるようになりますよ!
デスクトップ通知で何が変わる?
デスクトップ通知を活用すると、あなたの作業効率は格段にアップします。
- 処理完了を即座に把握!
- もう「終わったかな?」と何度も確認しに行く手間がなくなります。通知が来たら次の作業へGO!
- エラー発生を見逃さない!
- 長時間実行しているスクリプトでエラーが出ても、すぐに気づいて対応できます。
- 他の作業に集中できる!
- 通知が来るまで他の仕事に没頭できるので、思考を中断されることが減り、集中力もアップします。
- ストレス軽減!
- いつ終わるかわからないモヤモヤから解放され、精神的なストレスも減ります。
いいことづくしですね!それでは早速、そのやり方を見ていきましょう。
【解決策】plyerライブラリを使ってデスクトップ通知を出そう!
Pythonでデスクトップ通知を出すには、いくつか方法がありますが、今回は初心者の方でも手軽に導入できて、Windows、macOS、Linuxといった様々なOSで動作する「plyer」というライブラリを使います。
ステップ1: plyerライブラリをインストールする
まずはplyerライブラリをあなたのパソコンにインストールする必要があります。Pythonの「パッケージ管理ツール」であるpip(ピップ)を使って、コマンド一つでインストールできます。
パソコンの「コマンドプロンプト」(Windows)や「ターミナル」(macOS/Linux)を開いて、以下のコマンドを入力し、Enterキーを押してください。
bash
pip install plyer
もし、Pythonが複数バージョン入っているなどしてうまくいかない場合は、pip3を使ってみてください。
bash
pip3 install plyer
これでplyerライブラリが使えるようになりました!
ステップ2: 基本的な通知コードを書いてみよう
インストールが終わったら、実際に通知を出してみましょう。以下のコードをコピーして、Pythonファイル(例: notify_test.py)として保存し、実行してみてください。
“`python
from plyer import notification
import time
— 通知を出してみよう! —
notification.notify(
title=’Python通知テスト’, # 通知のタイトル
message=’通知が成功しました!’, # 通知のメッセージ
app_name=’My Python App’, # アプリケーション名(任意)
timeout=10 # 通知が表示される時間(秒)
)
print(“通知が送信されました。”)
“`
コードの解説
from plyer import notification:plyerライブラリの中から、通知を出すためのnotificationという部分だけを読み込んでいます。これをすることで、notification.notify()という形で簡単に通知機能を使えるようになります。notification.notify(...): これが実際に通知を出すための命令です。丸括弧の中には、通知に関する様々な情報を「引数」(ひきすう)として渡します。title: 通知のタイトルです。太字で表示されることが多いです。message: 通知の本文です。ここに伝えたい内容を書きます。app_name: 通知元となるアプリケーションの名前です(OSによっては表示されない場合もあります)。timeout: 通知が表示され続ける秒数を指定します。この時間を過ぎると自動で消えます。Noneを指定すると、手動で消すまで表示され続けます。
このコードを実行すると、数秒後にデスクトップの右下(Windowsの場合)などに「Python通知テスト」という通知が表示されるはずです。
もし通知が出ない場合は、OSの設定でPythonアプリからの通知が許可されているか確認してみてください。
ステップ3: アイコンを設定してみよう(応用)
通知にアイコンを設定すると、どのアプリからの通知か一目でわかり、さらに便利になります。Windowsの場合、.ico形式のファイルを指定するのが一般的です。macOSやLinuxの場合は.pngなども使えます。
ここでは、Windowsで.icoファイルを指定する例を紹介します。適当なアイコンファイル(例: icon.ico)をPythonファイルと同じフォルダに置いて試してみてください。
“`python
from plyer import notification
import time
import os
アイコンファイルのパスを指定
このPythonファイルと同じフォルダに ‘icon.ico’ があると仮定
icon_path = os.path.join(os.getcwd(), ‘icon.ico’)
— アイコン付きの通知を出してみよう! —
notification.notify(
title=’Python通知(アイコン付き)’,
message=’アイコンが表示されました!’,
app_name=’My Python App’,
app_icon=icon_path, # アイコンのパスを指定
timeout=10
)
print(“アイコン付き通知が送信されました。”)
“`
アイコンについて補足
os.path.join(os.getcwd(), 'icon.ico'): これは、現在実行しているPythonスクリプトがあるフォルダの中にicon.icoというファイルがある、というパスを作成しています。app_icon: ここにアイコンファイルのパスを文字列で指定します。- Macユーザーの方へ:
plyerでアイコン付き通知がうまくいかない場合があります。その場合は、別途pip install mac_os_notifierを試してみてください。(それでも出ない場合はアイコンなしで運用するか、他のライブラリを検討する必要があります) - アイコンがなくても問題なく動きますので、まずはアイコンなしで試して、慣れてきたら挑戦してみるのがおすすめです!
【応用編】実際の処理と組み合わせてみよう
せっかくデスクトップ通知が出せるようになったのですから、実際の業務で役立つように長時間かかる処理やエラー処理と組み合わせてみましょう。
処理の開始と完了を通知する
例えば、データ処理やファイル操作など、時間がかかるスクリプトの開始時と完了時に通知を出すことで、作業の区切りが明確になります。
“`python
from plyer import notification
import time
def long_running_process():
“””時間がかかる処理のシミュレーション”””
print(“処理を開始します…”)
notification.notify(
title=’処理開始’,
message=’長時間かかる処理がスタートしました!’,
app_name=’データ処理’,
timeout=5
)
time.sleep(5) # 5秒間、処理しているフリ
print(“処理が進行中です…”)
time.sleep(5) # さらに5秒間
print(“処理が完了しました。”)
notification.notify(
title=’処理完了’,
message=’お疲れ様でした!すべての処理が正常に終了しました。’,
app_name=’データ処理’,
timeout=10
)
if name == ‘main‘:
long_running_process()
“`
このコードを実行すると、まず「処理開始」の通知が届き、10秒後に「処理完了」の通知が届きます。これで、別の作業をしていても「処理が終わったな」とすぐに気づけますね!
エラー発生時に通知する
最もストレスを感じる瞬間の一つが、エラー発生に気づかないことですよね。Pythonのtry-except構文(エラーが発生しそうな処理を囲み、エラーが起きた場合に特定の処理を実行する仕組み)と組み合わせることで、エラー発生時にすぐに通知を出すことができます。
“`python
from plyer import notification
import time
def process_with_error_handling():
“””エラーが発生する可能性のある処理のシミュレーション”””
try:
print(“処理を開始します…”)
notification.notify(
title=’処理開始’,
message=’重要な処理がスタートしました!’,
app_name=’重要タスク’,
timeout=5
)
time.sleep(3) # 3秒間処理
# わざとエラーを発生させる
result = 10 / 0
print("処理が完了しました。")
notification.notify(
title='処理完了',
message='タスクが正常に終了しました。',
app_name='重要タスク',
timeout=10
)
except ZeroDivisionError:
print("エラーが発生しました: 0で割り算しようとしました。")
notification.notify(
title='【エラー発生!】',
message='重大なエラーが発生しました!スクリプトを確認してください。',
app_name='重要タスク',
timeout=None # エラーなので手動で消すまで表示
)
except Exception as e:
print(f"予期せぬエラーが発生しました: {e}")
notification.notify(
title='【予期せぬエラー!】',
message=f'不明なエラーが発生しました: {e}',
app_name='重要タスク',
timeout=None
)
if name == ‘main‘:
process_with_error_handling()
“`
このコードを実行すると、わざと10 / 0という0で割り算するエラーを発生させています。これによりZeroDivisionErrorが捕捉され、「【エラー発生!】」という通知が送られます。timeout=Noneにすることで、ユーザーが手動で通知を消すまで表示され続けるため、重要なエラーを見逃す心配がありません。
補足・注意点
- OSの通知設定: パソコンのOS側で、Pythonからの通知がブロックされている場合があります。Windowsであれば「設定」>「システム」>「通知とアクション」、macOSであれば「システム設定」>「通知」で、Pythonまたは実行中のスクリプトからの通知が許可されているか確認してください。
- 通知の見た目: 通知の見た目や挙動は、使用しているOSやデスクトップ環境によって多少異なります。
- アイコンファイルのパス: スクリプトを別の場所で実行する場合や、アイコンファイルを移動した場合は、
app_iconに指定するパスを適切に修正してください。
まとめ
今回は、Pythonのplyerライブラリを使ってデスクトップ通知を出す方法を解説しました。
pip install plyerで簡単にインストール。notification.notify(title='...', message='...')でシンプルな通知。app_iconでアイコンも設定可能。- 長時間処理の完了やエラー発生時に組み合わせて活用!
この機能をあなたのPythonスクリプトに組み込むことで、業務効率は大きく向上し、ストレスも軽減されるはずです。「なんだかめんどくさいな…」と感じていた部分が、きっと「これなら楽ちん!」に変わるでしょう。
ぜひ今日からデスクトップ通知を使いこなして、スマートなエンジニアライフを送ってくださいね!

コメント