web-dev-qa-db-ja.com

pyinstallerを使用して.dllファイルを実行可能ファイルに含めるにはどうすればよいですか?

pythonスクリプトから単一の実行可能ファイルを生成します。これにはpyinstallerを使用します。スクリプトでnumpyを使用しているため、mklライブラリに問題がありました。

私はこれを使用しました フック なので問題を解決しました、それはうまくいきました。しかし、単一の実行可能ファイルを別のディレクトリにコピーして実行しても機能しません。フックもコピーする必要があると思います。しかし、_.dll's_またはフックをコピーせずに他のコンピューターで使用できる単一のファイルが欲しいだけです。

説明したように_.spec_ファイルも変更 here し、必要なファイルをbinaries-変数に追加しました。 _.dll's_がbinaries- variableの提供されたディレクトリにある限り、これも機能しますが、これらの_.dll's_。

_--hidden-import= FILENAME_オプションを使用してみました。これも問題を解決しますが、_.dll's_がどこかに提供されたときだけです。

私が探しているのは、_.dll's_を単一の実行可能ファイルにバンドルして、独立して動作する1つのファイルを作成する可能性です。

11
David P

ここで説明されている問題に直面したとき https://github.com/ContinuumIO/anaconda-issues/issues/44 私の回避策は

pyinstaller -F --add-data vcruntime140.dll;. myscript.py

-F-1つの*。exeファイルに収集

.-exeファイル内のdllの宛先パス

ドキュメントから http://pyinstaller.readthedocs.io/en/stable/spec-files.html#adding-data-files

7
Ilya Davydov

選択した回答がlibportaudio64bit.dllを使用する場合に機能しないため、ここに私の解決策を置きます。

私にとっての作業解決策は、.exeファイルが配置されている場所に_ sounddevice_dataフォルダーを追加し、その中にportaudio-binariesフォルダーを作成して、最後にlibportaudio64bit。 dll最近作成されたフォルダ。

それが役に立てば幸い!

0
AK47dev