web-dev-qa-db-ja.com

MacOSのPyInstallerでのロード時のエラーPython lib

一部の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_です。

5
A. Pine

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 で簡単に管理できます)。

1
wutangforever

Pyinstallerの最新バージョンはPython 2.7、3.5–3.7のみをサポートします。Python 3.7にダウングレードすると機能します!

0
Robin Jongeneel