RaspberryPi起動時にPythonのGUIを動かしたい

今回はラズパイでpythonのGUIプログラムを書いて、起動時に実行しようとしたときに詰まったのでその時に行った解決策をまとめておこうかと思います。

始めに

まず始めに、最新のRaspbianだと今回の方法は使えないかもしれません。風の噂でできなくなったと聞きました...orz

環境

  • RaspberryPi 3B+
  • Raspbian 10.3
  • Python 3.6
  • GUIはTkinter
  • clock.py (GUIプログラム)

失敗策

起動時にプログラムを実行させるならrc.localやらsystemctlやらcronやら使え、とありますがどれもGUIのプログラムではエラーが出ました。logを見ると、DISPLAYが見つからん、というような感じだったはず...。
補足ですが、rc.localは少し前から非推奨になっています。起動時に何かしたいときはsystemctlにサービスを登録しましょう。

解決策

autostartを使いました。調べると様々な場所にautostartが見つかるのですが、今回動作を確認したのは、
/etc/xdg/lxsession/LXDE-pi/autostart
に存在するautostartをいじったときのみでした。
autostartの最後の行に、
@lxterminal -e sh /home/pi/python_clock/run.sh
と追記。

/home/pi/python_clock/run.shに

#!/bin/bash
cd /home/pi/python_clock
python3 clock.py

と書いて再起動で無事pythonで書かれたGUIプログラムが動きました。

まとめ

今回は無事動きましたが、autostartは廃止された方法なので今後は通用しないかもしれません。他に素晴らしい方法を知っている方がいらっしゃいましたら是非コメントにお願いします。

kutzoa
環境構築などで困ったとき、またその解決策をただ書くだけの大学生。 同じようにつまった誰かのためになれば幸いです。
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
コメント
この記事にコメントはありません。
あなたもコメントしてみませんか :)
すでにアカウントを持っている方は
ユーザーは見つかりませんでした