web-dev-qa-db-ja.com

Pyinstaller "スクリプトpyi_rth_pkgresの実行に失敗しました"と不足しているパッケージ

私の質問のほとんどはすでに他の人が回答しているので、ここに質問を投稿するのはこれが初めてです。私は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ファイルを含めるには、カスタムパスを渡す必要がありました。

次のトラブルシューティング手順のヒントやアイデアはありますか?私はあなたが提供するすべてのヘルプに非常に感謝しています。問題の診断に役立つコードやファイルなどをアップロードできます。その間、私は自分で解決策を探し続けます!

7
gurnben

ここで同じ問題:

  • OS:Win10
  • Python:3.7
    • pyinstallerインストール済みpip install pyinstaller

修正(上記と同じ解決策、ダウンロードは不要):

pip uninstall pyinstaller
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.Zip
10
crifan

私も同じ問題を抱えていました。次の指示に従って、pyinstallerを開発者のブランチバージョンで再インストールすることで解決しました: https://github.com/pyinstaller/pyinstaller/issues/2137

手順は次のとおりです。

  • PyInstallerを削除しますpip uninstall pyinstaller
  • github からZipをダウンロードします。
  • ファイルを解凍します。
  • 「setup.py」のあるディレクトリにいることを確認し、次のコマンドを実行します:python setup.py install
5
sas

Vikash Kumar'sの回答を拡張し、--hidden-import argument to the commandを追加してアプリケーションをビルドします。

たとえば、以下のコマンドを実行するとうまくいきました。

"pyinstaller --hidden-import pkg_resources.py2_warn example.py"

3
Anirudh

@ vikash-kumarの回答を拡張します。
pyinstallerツールにはコマンドラインパラメータ--hidden-import

それは私にとってトピックの問題を解決します。

詳細:
https://pythonhosted.org/PyInstaller/when-things-go-wrong.html#listing-hidden-imports

3
Stepan Rogonov

行を追加します。

import pkg_resources.py2_warn

私のコードに役立ちました。

1
Vikash Kumar