3

最近のバージョンの pyinstaller をオプション付きで使用して--onefile、Python スクリプトのスタンドアロン ファイルを 1 つ作成しました。私の Mac では、ターミナル (bash シェル) でファイルを開くと問題なく動作しますが、Linux bash では次のエラーが発生します。

bash: ./myprog: cannot execute binary file

私がここに欠けているものはありますか?

4

2 に答える 2

6

pyinstaller実行されているマシンで動作する実行可能ファイルを作成します。したがって、Windows で pyinstaller を実行すると、Windows 用の実行可能ファイルが作成されます。Mac、Linux などでも同じなので、Linux ボックスで pyinstaller を実行して、その環境で動作する実行可能ファイルを生成してみます。Mac 実行可能ファイルは Linux 実行可能ファイルではありません。

これは、(私が理解しているように) 基礎となる Python には、特定のもののプラットフォーム固有の実装が含まれているためです。たとえば、osモジュールには、実行可能ファイルにバンドルされる条件付きのプラットフォーム依存のインポートが多数あります。実行中のプラットフォームで利用可能なバイナリにしかアクセスpyinstallerできないため、他のプラットフォーム用のバージョンを作成することはできません。

于 2013-04-02T16:37:14.830 に答える
0

Linux は実行可能ファイルのマジック ナンバーをチェックします。Linux 実行可能ファイルのマジック ナンバーは「DLE elf」で始まります

「od -c YUPUR_FILE」を実行して結果を確認

于 2013-04-03T03:36:02.147 に答える