Fletでビルド後に起動したらModuleNotFoundErrorになる問題の対処法

Fletでビルド後に起動したらModuleNotFoundErrorになる問題の対処法 Python
Fletでビルド後に起動したらModuleNotFoundErrorになる問題の対処法

Pythonのvenv環境でFletを用いて開発したアプリをflet build windowsのコマンドでビルド後に起動したところ「ModuleNotFoundError: No module named ‘xxxx’」となることがあり詰まっていたので一応の解決方法を残します

環境

  • Python 3.11.4
  • Flet 0.22.1
  • venv
  • Windows

事象

venv環境でFletを用いてアプリを作成し、開発時は問題なく起動できていたがflet build windowsのコマンド実行後に生成されたexeファイルを起動したところ「ModuleNotFoundError: No module named ‘xxxx’」のエラーが表示され実行できない

import requestsを記述していたが見つからない模様

考えられる原因

ビルド後のファイルを見るとvenv環境でインストールしたライブラリがビルドに含まれていないように見える

対処法

flet build windowsでビルド後に.venv/Lib/site-packagesの中にあるフォルダやファイルを、ビルドで生成されたbuild/windows/Libの配下にコピーする

project
  ┣ .venv
  ┃     ┣ xxx
  ┃     ┗ Lib
  ┃         ┗ site-packages 
  ┃             ┣ aaa       ←
  ┃             ┣ bbb       ← これらをコピーして
  ┃             ┗ ccc.py    ←
  ┃             
  ┗ my_app
        ┣ build
        ┃    ┗ windows
        ┃       ┣ xxx
        ┃       ┗ Lib   ← ここの配下にペースト
        ┗ main.py

xxxは省略という意味

これで一応実行できるようになりました

まとめ

やっつけ仕事ですが一応動くようにできたので備忘録として誰かの役に立てればと思います

不具合等あればコメントで教えてください!

コメント

タイトルとURLをコピーしました