Pythonスクリプトをダブルクリック実行できるプログラムに変換する方法[mac/win対応]

今回、mac環境でPythonをダブルクリック実行したい人向けの紹介になります。
WindowsならPythonスクリプト(プログラムを書き込んだpyファイル)を直接ダブルクリック実行することができます。
しかし、macの場合だとテキストファイルを開いてしまうと思います。
理由はデフォルトでダブルクリックした時、メモアプリで開くと設定されているためです。

macでPythonスクリプトをダブルクリック実行できるように、プログラムファイルに変換する方法を紹介します。

Pythonをダブルクリック実行するプログラムファイルを作る方法について

プログラムが書き込まれたPythonスクリプト(拡張子pyファイル)をプログラムファイル(拡張子なし)に変換する方法にはPythonモジュールを使用します。
そのモジュールはpyinstallerでコマンド実行ですることで変換を行います。

Pythonスクリプト

(ターミナルでpyinstallerコマンド実行)

プログラムファイル

Finderからプログラムファイルをダブルクリック実行

このような流れでダブルクリック実行可能なプログラムファイルを用意します。

動作確認したPython環境紹介

今回動作確認をしたときの環境を簡単に紹介します。
マシン:macbook air 2019
Pythonバージョン:3.8.5
Pythonインストール環境:Homebrewのpyenvで3.8.5管理
(公式サイトからPythonファイルをダウンロードしてインストールする方法もありますが、アンインストールなど管理が楽なのでHomebrewを選びました)
Pythonをmacにインストールする方法は沢山検索ヒットするので参考にしてみてください。

Pythonのプログラムファイルを作る手順

準備:ターミナルを起動

1:pyinstallerモジュールの有無を確認

"pip list”をコマンド実行

ターミナルで"pip list”をコマンド実行

2:無い場合はpyinstallerモジュールをインストール

ターミナルで”pip install pyinstaller”をコマンド実行する
正常にインストールされると”pip list”でpyinstallerを確認できます。

3:ファイル名.pyの階層にターミナルを移動

今回は実行すると"Hello_x"を標準出力するtest.py→test(プログラム)に変換

4:”pyinstaller ファイル名.py —onefile”をコマンド実行

※OSErrorが発生する場合は次の見出し(OSErrorが発生する場合)を確認してみてください

実行するとしばらく処理が行われます
成功した場合は"successfully"というメッセージが標準出力されます

5:distフォルダが作成されて中にプログラムファイルが配置される

pyinstallerコマンド実行後、フォルダにdistが作成され中に変換したプログラムが配置されます

6:完成したtest(プログラム)ファイルをダブルクリック実行

testプログラムをダブルクリックするとこの画面が表示される

※ウィンドウを表示したく無い場合は下記のコマンドでプログラムファイルを作成してください。
"pyinstaller test.py --onefile --noconsole"
Googleで"pyinstaller オプション"を検索すると色々ありますので欲しい機能があれば探してみてください。

pyinstallerでOSErrorが発生する場合

4:の“pyinstaller ファイル名.py —onefile”でOSErrorが発生する場合はPythonを管理するpyenvに原因がある可能性があります。
その場合は一度pythonを下記のコマンド実行で再インストールすると解決します。
"PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.X.X”
(pyenvのPythonをアンインストールは"pyenv uninstall 3.X.X"で可能です)
私は上記のコマンドでPythonを入れ直すことでpyinstallerが正常に動くようになりました。

注意点はカレントディレクトリが実行場所と異なる

macのFinderからダブルクリック実行した場合、カレントディレクトリ≠実行場所(ダブルクリックした階層)です。
例えばPythonでファイルを作成する時に相対パス(./ファイル名.txt)を指定すると下記のフォルダに出力されます。

/Users/ユーザ名/ファイル名.txt
(Pythonにファイルの読み書きを行う場合は注意が必要です)

普通ならダブルクリックしたフォルダ内に出力したいです。
その場合は下記のようにパス情報を操作するとうまくできます。

testをダブルクリックすると同じ階層にTextFile.txtを作成するPythonスクリプトです

参考:シェルスクリプトをダブルクリック実行する場合は下記を冒頭に入れるように、種類によって方法は異なります。
cd dirname $0

Pythonスクリプトを直接ダブルクリック実行したい場合は"Python Launcher”

今回はPythonスクリプトから実行ファイルを変換する方法を紹介しました。
もし、実行ファイルを変換せずにダブルクリック実行したい場合は”Python Launcher”というappを使用するといいです。
下記のサイトに設定方法が記載していますので参考にしてみてください。

“Python Launcher”はPython公式サイトからインストーラをダウンロードしてインストールすると使用できるようになります。
私のようにHomebrewとpyenvにインストールするだけでは使えないので注意してください。

知らない人に自作Pythonを使ってもらうたい場合は実行ファイル変換はおすすめ

今回紹介した実行ファイルに変換する方法は中身が確認できないので、誰かに内容を書き換えられる心配はなくなります。
ダブルクリック実行できる以外にもセキュリティ面で役立つため知っておいて損はありません。
ぜひ参考にしてみて日々の面倒な作業をPythonで自動化させてみてください。

おすすめの記事