4

私は最近pyInstallerを試しましたが、よくわからないことがいくつかあります。私はいくつかの実行可能ファイルを作成しようとしています (注: それらはすべて numpy、scipy、OpenCV、BLAS などを使用しています) が、失敗しています。常に何かが欠けています。だから私の質問は、誰かがhiddenimportsとhooksとは何か、そしてpyInstallerにコード内のすべての依存関係のディレクトリを教えて、最終的な実行可能ファイルにパックできるようにするにはどうすればよいかを説明してもらえますか?

ありがとうございました。

4

1 に答える 1

12

pyinstallerのドキュメントから

隠しインポート

A list of modules names (relative or absolute) the module imports in some untrackable way.

一部の Python インポートは、プログラムの静的分析中に追跡できません。例: コードは、Python コードを使用してインポートするモジュールの名前を作成し、そのモジュールをインポートする場合があります。この場合、pyinstaller は、コード分析中に、インポートするモジュールの名前を特定できません。事前にわかっている場合は、無条件にこれらのモジュールを含めるように pyinstaller に指示できます。

フックは、一連の非表示のインポートと、モジュールを見つけるためのその他のパラメーターをバンドルする方法です。フックはhook-<module>.py、module が完全修飾モジュール名である場合に名前が付けられます。例えばhook-xml.dom.py。コードimport xml.domに含まれる場合、フック スクリプトの内容が読み取られて、xml.dom.

独自のモジュールを作成し、非表示のインポートが必要な場合は、適切な非表示のインポート設定を使用してフック スクリプトを作成し、PyInstaller フック ディレクトリに格納できます。次に PyInstaller を使用してモジュールをインポートするプログラムをフリーズすると、フック ファイルが自動的に検出され、必要な非表示のインポートが取り込まれます。モジュールの非表示のインポートが何であるかを毎回覚えておく必要はありません。

ドキュメントには、これらすべてがどのように機能するかについての詳細が記載されていますが、背景情報がさらに提供されることを願っています。

于 2013-03-10T03:06:47.470 に答える