Pyinstallerパッケージ化の問題

pyinstallを使用してクライアントアプリケーションをパッケージ化する際に遭遇したいくつかのクロスプラットフォームの問題を記録します。

1 Windows7 適応問題

1
LoadLibrary: PyInstaller FormatMessageW failed.

python 3.9以降はwin 7をサポートしていないため、ソフトウェアをwin 7で動作させる場合、python環境は最大で3.8です。

2 win7 欠落している動的ランタイムライブラリ

1
このプログラムを開始できません。コンピュータにapi-ms-win-core-path-l1-1-0.dllがないためです。この問題を解決するには、このプログラムを再インストールしてみてください。

不足しているものを補うために、DLLファイルをプログラムのルートディレクトリフォルダに入れるか、C:/windows/System32に配置します。しかし、通常この問題は単独では発生せず、pyinstallerがパッケージ化時にいくつかの動的ライブラリを含めていないためです。

3 QT動的ロードの一部が欠如

1
ImportError: DLL load failed while import ing QtGui:

解決方法1:環境のSitepackages/QtGuiをプログラムのルートフォルダに配置します。 解決方法2:パッケージ化コマンドpyinstaller main.py --noconsole --hidden-import PySide6.QtXml -F -p C:\Windows\System32\downlevel -p C:\Windows\System32を使用し、hidden-importを指定して欠落しているモジュールを手動でロードします。

4 pyinstaller could not get source code

エラーログを逆にたどり、欠落している環境パッケージを手動でプログラムのルートディレクトリにコピーするか、パッケージ化時にhidden-importでこれらのパッケージを指定してインポートします。

Buy me a coffee~
Tim 支付宝支付宝
Tim 贝宝贝宝
Tim 微信微信
0%