-
Notifications
You must be signed in to change notification settings - Fork 245
Description
不具合の内容
とりあえずメモissueです。
0.25.1のリリースビルド中に、WindowsのビルドでPyInstallerがModuleNotFoundError: No module named 'backports'エラーで失敗した。
現象・ログ
ModuleNotFoundError: No module named 'backports'
[PYI-2556:ERROR] Failed to execute script 'pyi_rth_pkgres' due to unhandled exception!
エラーが起きたjobの例: https://github.com/VOICEVOX/voicevox_engine/actions/runs/20714661026/job/59464823772
原因の推測
PyInstallerのDiscussionによると、altgraph==0.17.5から問題が起き始めたとのこと。
CIの<Setup> Prepare custom PyInstallerでuv pip install -Uが呼ばれていて、そこでuv.lockのaltgraph==0.17.4ではなくaltgraph==0.17.5にアップデートされていることが原因かもしれない。
PyInstaller 6.17.0では修正されているらしい。release-0.25ブランチのPyInstallerは6.14.2だった。
なぜ0.25.0のときは問題が起きなかったのかは不明。
対応
PyInstallerを6.17.0に上げて0.25.1-previewをビルドしている。ビルドできたらこれをエディタから用いる予定。
現在の0.25.1は失敗しているので廃棄になると思われる。今後の選択肢:
- 0.25.1を消して、新しくちゃんとビルドできるようになった0.25.1を作り直す
- 0.25.1はそのままにして0.25.2を作る
作戦2(0.25.0エンジンに0.25.1用のリソースを詰めて無理やりリリースする)で作った仮初の0.25.1もどきを0.25.1にアップロードするのは危なそうなので避ける。理由は、エンジン内のバージョンがWindowsだけ0.25.0になってしまうから。アップロードするなら例えば0.25.1-hotfix.0みたいなところにする。
再発防止について
PyInstallerのビルド時の依存関係が固定できていないことが根本的な問題。
もし頑張るならビルドしたものをforkリポジトリのreleaseにアップロードしておくとかになりそう。
関連リンク
- 0.25.1リリース進捗: バージョン0.25のアップデートメモ voicevox_project#74 (comment)
- PyInstallerを6.17.0に上げるPR: build: [release-0.25] pyinstallerを6.17.0に #1834
- 0.25.1向けアップデートPR: build: [release-0.25] to 0.25.1 #1832
- PyInstallerのDiscussion: https://github.com/orgs/pyinstaller/discussions/9315
OSの種類/ディストリ/バージョン
- Windows
- macOS
- Linux