【Python3】rumpsでステータスバーに常駐するアプリを作る

急にステータスバーに常駐するアプリを作りたくなったので色々調べた。で、見つかったのがrumpsというPythonでタスクバー常駐アプリを簡単に作れるすっごいやつ。

rumpsを使うにあたってPython3だと一筋縄には動かず、導入にあたってあちこちつまづいたのでメモ。

rumpsのGithubページはここ


スポンサードリンク


Pyobjcのインストール

公式ページ曰く実行にはPyobjcというライブラリが必要とのこと。MacOSのバージョン次第ではPython2.xにならプリインストールされているとのことだが、Python3には無いっぽい※1説明書を読まないタイプの人間なので、rumpsだけインストールして無事にエラーを叩き出したので先にインストールする。

pipが使えるので、コンソールに

pip install -U pyobjc

と入れるだけで良い。

rumpsのインストール

rumpsもpipに対応してるのでコマンドを打つだけ、かと思いきやそれだと上手くいかなかった。

原因を究明した※2インストールフォルダ覗いて検証しただけところ、どうやらpipのリポジトリに上がってるものは最新版ではない模様。なので先程のGithubページからダウンロードして手動でインストールしてくる必要がある。

とはいえ、zipを解凍して中にあるsetup.pyを実行するだけで良い。cdコマンドでsetup.pyのある階層まで移動し、

python3 setup.py install

でおk。※3言うまでもないが、Python2.X系と3.X系を分けずににインストールしてる人はpython3じゃなくてpythonにすることダメならsudoでやればたぶんいける。と思う。

2017/10/17追記

4月にpip版も最新版に更新されて居た模様。なので普通にpip install rumpsでおk。

Eclipse+pydevでの設定

以上の設定でrumpsは使えるようになるが、Eclipse+Pydevだと場合はどうもrumpsを認識してくれない模様。コンパイル自体は通るのでエラーが出るimport文の横に#@UnresolvedImportと書けば一応解決するが、気になるのであれこれいじって直した。

エラーの直し方

Finderを開き、ctrl+shift+Gを押して/usr/local/libと入力。

Python3の入っているフォルダを開き、その中のsite-packagesというフォルダ内にrumpsという文字の入っているフォルダを探す。

開くとrumpsというフォルダが有るので、これをsite-packages内に移動

以上の動作で構文エラーも消えるはず。

実際にアプリを作ってみた

で、作ったアプリがこちら

ポモドーロ・テクニックという作業効率を上げるメソッドを簡単に使えるタイマー。

広告が邪魔な上に一定確率でベルがならない物、使うたびに「プロ版はいかがっすか?!?!?!」(英語)って出てくる物、その両方を兼ね備えた物しかなかったので自作した。

アプリ化出来ない問題

Pythonをダブルクリックで実行できる、いわゆるアプリケーションにするにはMacだとPy2appやCx_Freezeといったライブラリを使うのが一般的らしい。そしてこいつらがマジで使い物にならなかった。

Pythonのバージョンを合わせようがスクリプトを簡単なものにしようが狂ったようにエラーを吐くだけでまるで動かず。print(“hello”)  1行だけのプログラムでもエラーを吐くあたりに意地でも動作しないぞという鉄の心と鋼の意思を感じた。

Objective-Cだけは使いたくない※4食わず嫌いのでなんとかしてPythonで済ませたいのだが、今のところは他に手段がないので諦めるしかなさそう。

そもそろプロPythonラーは作ったツールをどうやって実行してるのだろう。わざわざEclipse起動したりターミナルを起動してコマンド打ってるのだろうか。そのへんが知りたい。

注釈   [ + ]

1. 説明書を読まないタイプの人間なので、rumpsだけインストールして無事にエラーを叩き出した
2. インストールフォルダ覗いて検証しただけ
3. 言うまでもないが、Python2.X系と3.X系を分けずににインストールしてる人はpython3じゃなくてpythonにすること
4. 食わず嫌い

スポンサードリンク


コメント

  1. starrow1103 より:

    禿同です。
    私もずっとPython3以降のスタンドアロン化の方法を模索していますが、

    今のところウェブアプリ化で対処するしかなさそうです・・・。
    自分のブログ管理システムはターミナルで操作しています…こんなんじゃPythonもどうしようもないですね。早く環境が整ってほしいものです。

    通りすがり失礼いたしました。