私の質問のほとんどはすでに他の人が回答しているので、ここに質問を投稿するのはこれが初めてです。私はpythonでGUIアプリケーションに取り組んでいて、移植性を高めるためにpyinstallerを使用して単一のフォルダと.exeにパッケージ化しようとしています。現在、Windows 10とanaconda3を使用してpython packages。アプリケーションは、tkinter、pillow、numpy、scikit-learn、opencv、ffmpeg、およびmatplotlibに依存しています。アプリケーションは、数値のオブジェクトを作成するメインGUI.pyファイルでフォーマットされています他のファイル(このGUIは同じ目的で機能するコマンドラインユーティリティを置き換えているため、その多くはサブフォルダーに保存されています)。私が実行している問題(タイトルでわかるように)は、.exeがスローしていることですエラーブロック:
トレースバック(最新の呼び出しは最後):ファイル "site-packages\PyInstaller\loader\rthooks\pyi_rth_pkgres.py"、11行目、ファイル "c:\ users\gurnben\anaconda3\envs\opencv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py "、389行目、load_module exec(bytecode、module .dict)ファイル" site-packages\setuptools-20.7.0-py3.5.Egg\pkg_resources__init __。py "、68行目、ファイル" site-packages\setuptools-20.7.0-py3.5.Egg\pkg_resources\extern__init __。py "、60行目、load_module ImportError: 'packaging'パッケージが必要です。通常、これはこのパッケージにバンドルされているため、この警告が表示された場合は、ディストリビューションのパッケージャに問い合わせてください。スクリプトpyi_rth_pkgresの実行に失敗しました
Warn.txtを見ると、実際には単一フォルダパッケージにある一部のパッケージの一部を含む、不足しているパッケージの大規模なリストが表示されます。
しかし、opencvからのdllファイルを認識し、欠落しているファイルにリストされていません(ffmpegも含まれていませんが、フォルダーにffmpegファイルがありませんでした)。現時点では、anancondaにないため、opencvファイルを含めるには、カスタムパスを渡す必要がありました。
次のトラブルシューティング手順のヒントやアイデアはありますか?私はあなたが提供するすべてのヘルプに非常に感謝しています。問題の診断に役立つコードやファイルなどをアップロードできます。その間、私は自分で解決策を探し続けます!
ここで同じ問題:
pyinstaller
インストール済みpip install pyinstaller
修正(上記と同じ解決策、ダウンロードは不要):
pip uninstall pyinstaller
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.Zip
私も同じ問題を抱えていました。次の指示に従って、pyinstallerを開発者のブランチバージョンで再インストールすることで解決しました: https://github.com/pyinstaller/pyinstaller/issues/2137
手順は次のとおりです。
pip uninstall pyinstaller
。python setup.py install
Vikash Kumar's
の回答を拡張し、--hidden-import argument to the command
を追加してアプリケーションをビルドします。
たとえば、以下のコマンドを実行するとうまくいきました。
"pyinstaller --hidden-import pkg_resources.py2_warn example.py"
@ vikash-kumarの回答を拡張します。
pyinstallerツールにはコマンドラインパラメータ--hidden-import
。
それは私にとってトピックの問題を解決します。
詳細:
https://pythonhosted.org/PyInstaller/when-things-go-wrong.html#listing-hidden-imports 。
行を追加します。
import pkg_resources.py2_warn
私のコードに役立ちました。