pyinstallerパッケージングに成功した後、ModuleNotFoundError:No module named'distutils'エラー解決方法を提示


質問:pyinstallerパッケージして実行するときのヒント:ModuleNotFoundError:No module named‘distutils’
昨日pyinstallerでパッケージングして実行したときにヒント:ModuleNotFoundError:No module named'distutils'のエラーがありました.
様々な方法を試みてもこの問題を解決することができず、githubでissueを見た.
私は自分のvirtualenvのバージョンを見て、彼が紹介したこのバージョンであることに気づいた.
cmdで自分のvirtualenvのバージョンを表示し、次のコマンドを入力します.
virtualenv --version

私のvirtualenv 16.4.0を見て、現在の最新バージョンです.
virtualenv 16.4.0、pyinstallerレポートを使用します.
3583 INFO: distutils: retargeting to non-venv dir '/usr/lib64/python3.6/distutils/__init__.py'

その後、「モジュールフックのロード」シーケンス中にhook-distutils.pyが欠落し、distutilsモジュールは最終的な実行可能なバイナリファイルに含まれない.
バイナリ・ファイルの実行中にエラーが発生しました.
ModuleNotFoundError: No module named 'distutils'
[10373] Failed to execute script 

virtualenv 16.1.0、pyinstallerレポートを使用します.
3157 INFO: Processing pre-find module path hook   distutils
5053 INFO: Loading module hook "hook-distutils.py"...

およびdistutilsモジュールは、最終的な実行可能なバイナリファイルに含まれます.
彼らの解決策を分析して、私はちょうど試してみる態度を報告した.すぐに私のvirtualenvのバージョンを16.1に降格します.具体的な手順:
  • virtualenv
  • を先にアンインストール
    pip uninstall virtualenv
    
  • バージョン16.1のvirtualenv、
  • を再インストール
    pip install virtualenv==16.1  #        virtualenv
    
  • のインストールが完了した後、私は元の仮想環境でパッケージ化して、依然として問題が解決していないことを発見しました.そこで私は元の仮想環境をすべて削除しました.virtualenvコマンドを再使用して、新しい仮想環境
  • を新規作成しました.
    virtualenv --no-site-packages XXX  # xxx         
    
  • プロジェクトに必要なパッケージをすべて再仮想環境にインストールします:
  • pip install -r requirements.txt # requirements.txt          
    

    *注意:pipの使用については、ご自身で関連ドキュメントを参照してください
  • パッケージコマンドを使用してプロジェクトを再パッケージ
  • pyinstaller -F run.py
    

    今回の梱包に成功してから運転し、問題が解決したことを発見した.
    参照先:https://github.com/pyinstaller/pyinstaller/issues/4064
    个人経験総括転載して出所を明記する
    作者:lizhonglin
    github: https://github.com/Leezhonglin/
    blog: https://leezhonglin.github.io/