pyinstallerパッケージ時のピット


【変換】png-to-ico
pyinstaller
一、pyinstallerのインストール
pip install pyinstaller

二、作業目録に切り替える
cd xxxxxxxxxxx

三、梱包命令
pyinstaller [      ]

pyinstallerは、作業ディレクトリにパッケージコマンドを入力するだけです.最後にbuildフォルダとdistフォルダが生成され、distフォルダの下に起動ファイルが表示されます.
その他のパラメータ(必要に応じて選択):
  • -Fは、distフォルダの下で単一の実行可能ファイル(内部にすべての依存が含まれている)のみが生成されることを示し、デフォルトを付けずにdistに依存ファイル+実行可能ファイルが大量に生成されます.
  • -Dと-Fの逆の使い方
  • -Wはコンソールウィンドウを削除することを示しています.もしあなたのプログラムにインタフェースがあれば、このパラメータを書かなくてもいいです.しかし、テストの場合は、パッケージが成功しないと、実行エラー情報がコンソールに出力され、コンソールがないとエラー情報が表示されないため、このパラメータを追加することをお勧めします.
  • -cは窓枠を外すことを示し、コンソール
  • を使用する.
  • -pは、ロードするクラスパスを定義し、プロジェクトに複数の自己構築モジュールが含まれている場合は-p aaa.py-p bbb.py-p ccc.py
  • を追加する必要があります.
  • -iは実行可能ファイルのアイコンを表し、後にアイコンの経路
  • が続く.
  • –hidden-importの後ろにはqueueのようなモジュール名が付いています.パッケージにあるモジュールをパッケージする必要はありません.
  • にパッケージする必要はありません.
    共通コマンド:pyinstaller -i (?)..ico -F (?).pypyinstallerエラー解決
  • パッケージ命令実行エラーIndexError: tuple index out of range
  • 理由:公式サイトの現在のバージョンは3.2.1 python 3.5のみサポートされており、高バージョンのpythonはまだサポートされていません.
  • 解决方法:网上有大神提供了完整版的コード——官网源码里有https://github.com/pyinstaller/pyinstaller pythonディレクトリの下にあるLibsite-packagesPyInstallerを置き換えるとpython 3.6をサポートできますが、開発版にすぎず、まだ完全ではないかもしれません.
  • パッケージ命令実行エラーImportError: No module named 'queue'
  • 原因:
  • は不明
  • 解決策:モジュールが使用できない場合は、パッケージコマンドを実行するときに-hidden-importでパッケージしないことができます.プログラムにモジュールが必要な場合は、メインファイルの一番上にimprot queue
  • と書きます.
  • パッケージングコマンドの実行は成功したが、実行可能プログラムをダブルクリックするとエラーウィンドウfailed to excute script xxx
  • がポップアップする.
  • 原因:パッケージ化時に内部に依存が欠けている(pipインストールが必要)場合は、コンソールがどのようなエラーメッセージを印刷しているかを見る必要があります.パッケージ化時に-wパラメータを追加した場合は、もう一度パッケージ化してください.-w
  • を削除してください.
  • 現象:基本的にはコンソールでNo module named‘xxxx’,例えばNo module named'queue’またはModuleNotFoundError:No module named‘PyQt 5.sip’解決方法:同じ2で、モジュールが使用できない場合は、パッケージングコマンドを実行する際に–hidden-importでパッケージングしないことができます.プログラムにモジュールが必要な場合は、メインファイルの一番上にimprot xxxxと書きます.例えばimport queueまたはimport PyQt 5.sip
  • パッケージングに成功した後、ウイルス削除(コンピュータの執事などのアプリケーションがインストールされている場合)
  • と認識された.
  • に-i設定iconを加えると
  • を解決できる.
  • 入口 ucrtbase.abort api-ms-win-crt-runtime-|1-1-0.dll
  • が見つからない
  • __pycache__buildのディレクトリで生成するファイルを削除し、その後、パッケージングコマンド
  • を再実行する.