Skip to content

0.25.1リリースビルドがWindowsでPyInstallerのエラーにより失敗する #1835

@Hiroshiba

Description

@Hiroshiba

不具合の内容

とりあえずメモ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 PyInstalleruv pip install -Uが呼ばれていて、そこでuv.lockaltgraph==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にアップロードしておくとかになりそう。

関連リンク

OSの種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions