一部のpython= MacOS(10.14.5)の実行可能ファイルにパッケージ化しようとしています。実行可能ファイルを作成できますが、結果の_dist/hello_world
_実行可能ファイルを実行すると、次のエラーが発生します。
_[55240] Error loading Python lib '/var/folders/yh/6_6mb2y96kg0gnb_nh9r2zrr0000gp/T/_MEIwUMw4X/Python': dlopen: dlopen(/var/folders/yh/6_6mb2y96kg0gnb_nh9r2zrr0000gp/T/_MEIwUMw4X/Python, 10): no suitable image found. Did find:
/var/folders/yh/6_6mb2y96kg0gnb_nh9r2zrr0000gp/T/_MEIwUMw4X/Python: code signature invalid for '/var/folders/yh/6_6mb2y96kg0gnb_nh9r2zrr0000gp/T/_MEIwUMw4X/Python'
_
私のマシンは実行中Python 3.7.7 https://www.python.org/ からダウンロードしたMacインストーラーを使用してインストール
今のところ、パッケージ化しようとしているスクリプトにはprint('hello world!')
のみが含まれており、使用しているパッケージ化コマンドは_pyinstaller -F hello_world.py
_です。
pyenv を使用して、pythonの特定のバージョンを、フレームワークの有効化オプションを指定してインストールしました。
env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.7.6
このバージョンのpython(hello_world.pyがあるフォルダーのpyenv local 3.7.6
コマンドを使用して設定)を使用して、pip
。次に、
pyinstaller hello_world.py --onefile --clean --windowed
機能するdist/hello_Word
が表示されます。 python駆け出しのように、元の質問の手順とは対照的にこれが機能する理由はわかりません(Mac OSインストーラーにデフォルトでPython.frameworkが含まれていると思いました-私はこれはおそらくPYTHON_CONFIGURE_OPTS
変数が上記で行っていることとは大きく異なるため、ここで私の無知が明らかになります。
これをすべて仮想環境内で実行することもできます( pyenv-virtualenv で簡単に管理できます)。
Pyinstallerの最新バージョンはPython 2.7、3.5–3.7のみをサポートします。Python 3.7にダウングレードすると機能します!