見出し画像

Python Launcher.appでデスクトップにあるPythonファイルをダブルクリックしたらファイルに記述したアプリケーションが立ち上がるやつを作る

筆者環境

プライベートのPC
Mac OS Ventura 13.0
Python 3.9.12

ターミナルで python -V って打つとバージョンわかる。pyenvはまた別のお話。

モチベーション

作ってみたかったので作りました。

今回は、デスクトップに置いたこのファイルをダブルクリックしたらSlackが起動するものを作ります。
Slackをそのまま起動すればいいじゃん?って思った?
フツーにデスクトップアプリのSlackをDockから立ち上げればいいじゃんとか、ログイン時の自動起動するアプリの設定すればいいじゃんとか、よく知らんけどmacの automation使えばいいじゃん?って思ったけど、
とにかく今回はPythonでやってみたかったんです!!!!

あと、こうして起動できるようになれば、その後の夢も広がるじゃん???

というわけで、とにかく作りたかったので作ります。

コードを書く

JupyterでもVScodeでもお好みのものでいいと思います。

import subprocess
subprocess.Popen(['open', '/Applications/Slack.app'])

起動させるだけなら、たったこれだけ。シンプル。さすがPython。

使用しているモジュール subprocess

うわあ、ドキュメント全然わからん、というわけで日本語ブログに頼ります。

ここでもう一度コードを見てみます。

import subprocess
subprocess.Popen(['open', '/Applications/Slack.app'])

1行目、import subprocess これはまずモジュールをimportってことで良いでしょう。詳しくは知らんけど、ライブラリを呼び出してる的な、先人の頭の良い人たち、こんな素敵なの用意してくれてありがとう、感謝のimportです。そう、importは感謝の呪文なのです(?)

2行目。今回はmacで動かしているので、
Popen関数の書き方に注意です。

引数は二つ。
多分['命令','アプリのパス']のような形。

最初に'open'

このダブルクリックでファイルを既定のアプリで開かせるコマンドがWindowsでは「start」、Macでは「open」、Ubuntuでは「see」です。

https://office54.net/python/python-subprocess-popen
より

↑これの大元が多分きっとドキュメントに書いてありそうな気がする。


shell=TrueはWindowsのみ必要ってのはこの辺か?

アプリのパスを取得する

今回はSlackを起動させたいので、Slackのアプリケーションのパスを取ってきます。
macの場合、たいていアプリケーションの中にあるはずです。

アプリケーション
この状態でoptionキーを押すと、「コピー」が「"Slack.App"のパス名をコピー」に変わる。


optionキーを押した状態


で、コピーすると、私の場合は下記のパスになる。
/Applications/Slack.app

なのでこれを使って、コードは下記となる。

import subprocess
subprocess.Popen(['open', '/Applications/Slack.app'])

デスククトップにPythonファイルを置いて、それをクリックしたらSlackを起動するようにする

ただデスクトップに置いただけだと、ファイルをクリックするとエディタ(私の場合はVS Code)が立ち上がると思います。なので、このファイルをどのアプリケーションで開くか指定してやる必要があります。
まずは現在の状況を見てみましょう。

情報を見る をクリック


このアプリケーションで開くが「VS Code」になっているのがわかる。


結論、このVS CodeをPython Launcher.app に変更すれば、ファイルをクリックしたときにSlackが立ち上がるようになります。

Python Launcher.app  ってなんだよ

なんか昨夜、色々ガチャガチャやってたらできるようになった。
すまん、詳しくわからん。わかったら書く。

あ、思い出してきた。これ見たんだ。


未解決の事項

Preferenceが立ちあがっちゃう問題


一個わからないのが、これで立ち上げるとPython Launcher.app のPreferenceの画面が出る時と出ない時がある。わからん。出ないようにしたい。

仮説だが、おそらくPython Launcher.appが立ち上がっている状態でファイルをクリックするとPreferenceが出ない。

立ち上がっている状態


終了させてみる


立ち上がってない状態、これでファイルをクリックすると…


Slackと一緒にPreferenceも出てくる


Run in a Terminal windowはチェック外してるわよ

Slackを起動したときに表示されるワークスペースはどう制御するのだ

わからん。前回開いていたワークスペースがそのまま立ち上がるっぽい。

デスクトップに置いたアイコンの見た目をどうにかしたい問題→解決した。

たぶんどこかに情報があって、編集すればできそう。

なんかありそう


いらすとやさんでボタンぽい画像を探し、DL



ファイルの情報みるで、開いて、DLした画像をみょーんと持っていったらアイコン変わった(語彙力)


アイコンの見た目を変えるのもできた。



気になってるけどまだやってないこと

Chromeを立ち上げるときの
アカウントどうんすんねや。


謝辞

ホッタさん、ありがとう!
https://twitter.com/Hotta3216

とりあえずこんなとこです!!


#Python
#PythonLauncher .app
#subprocess
#ノンプロ研


いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!