見出し画像

macとwinでpyInstallerを使う時経験した不具合と対処法

pyInstalllerの設定をwindowsとmacで経験した事を書き留めたいと思います。
macOSは10.13.5 Hight Sierra、windows 10 1909です。

Mac: pythonにpyenvをインストールして、そこにpython3.8.6を入れる。
pipでpyInstallerを入れる。その時の不具合と解決策は次の通り。

pyenvの問題。 PyInstallerを使うと、OSErrorが発生した。 対処はpyenvの再インストール。
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install バージョン

注意:envのアンインストールは不要だった。pip listで確認できるすでにインストールしたモジュールは失われていなかった。
2.pyInstallerの再インストール必要。
上記「モジュールは失われていなかった」と書いた。pip listで確認すると存在していることが確認できた。しかしpyInstallerを実行してもまだOSErrorが発生した。pip uninstall pyInstallerとpip install pyInstallerを実行し、再インストールした。

Mac環境でpython - pyenvを使う上で、インストール時--enable-sharedのオプションを使うことは重要なようです。"PYTHON_CONFIGURE_OPTS="--enable-shared" は「パイソン設定オプションでシェアを有効にする」という指定なのでしょう。

下にWindowsの問題点で書きますが、WindowsではpyInstallerインストール時、「実行ファイルがAppData下にインストールされたので、環境変数でパスを指定しなさい」と言われます。
「シェアする」(mac)という行為と「パスを通す」(win)という行為は違うようですが、macとwinを使う人々にとっては「使いやすくする」という設定、言い換えるとカスタマイズだと思います。
「よく読めば自分の好みにできるが、それに気づかず『使えないなぁ、もうやめる!』」と、「1次情報と周辺情報などかき集めて自分の知見を積み上げ使い続ける」と、「ソフトウェアは最適なUX環境が提供されるものだ」などが混在する事を気付かされます。

Win:
pyInstallerインストール完了した時、そのメッセージには、"C:\Users\USER_NAME\AppData\Roaming\Python\Python(バージョン)\Scripts"にインストールしたから、環境変数でパス指定したほうがいいという文章がある。 2.システム環境変数のPathに"C:\Users\USER_NAME\AppData\Roaming\Python\Python(バージョン)\Scripts"を加える。 3.自分の場合そのパスを一番上の順位にする。windowsは指定した実行ファイルを上から順番に探していくので、順位を上にすることは不要だと思うが、最上位にしても問題はないと判断した。
pyInstallerオプションで、--onedir or -p(1ディレクトリ)、--onefile or -F(1ファイル)、--noconsole or -w(コンソールを表示なし)、--clean(ビルド前に前回のキャッシュと出力ディレクトリを削除)、--icon(タイトルにアイコン表示)
--iconオプション設定時、pythonプログラムコード内で、iconのicoファイルのある場所を指定するのだが、その書き方はフルパスで記述すること。自分の場合、pyInstallerで生成は成功したのだが、distフォルダにあるexeファイルはfata errorが発生した。フルパスで記述し直したところfatal error問題は解決した。


この記事が気に入ったらサポートをしてみませんか?