とっとログ

やりたいことをやってみた

Kivyコードを含むPythonプログラムをexe化する際の注意点

59 views
約3分
とっと
とっと

 今回は、Kivyのコードを含んだPythonプログラムのexe化について、わたしがつまづいたところをまとめます。

exe化の際にImportErrorがでてしまう

 pyinstallerを使い、Kivyコードを含むPythonプログラムをexe化をしようとしたところ、こんなエラーがでてうまくいきませんでした。

前略・・・
130 WARNING: stderr:
File "main.spec", line 2, in <module> from kivy.deps import sdl2, glew

131 WARNING: stderr:
from kivy.deps import sdl2, glew
ImportError: cannot import name 'sdl2' from 'kivy.deps'
(C:\Users\xxxxxxxx\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\deps\__init__.py)

131 WARNING: stderr:
ImportError:
cannot import name 'sdl2' from 'kivy.deps'
(C:\Users\xxxxxxxx\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\deps\__init__.py)

 このエラーは、Kivyに関連するsdl2glewという2つのライブラリが見つからない!と言っています。

sdl2glewのライブラリのインストール先を修正

 まずはpip listコマンドで、インストールされているPythonライブラリを確認します。

 ちゃんとsdl2glewはインストールされているようです。

 問題は、インストール先です。

 わたしの場合、以下のフォルダにsdl2フォルダとglewフォルダありました。

C:\Users\xxxxxxxx\AppData\Local\Programs\Python\Python39\Lib\site-packages\kivy_deps

 両フォルダを以下のフォルダにコピーします。

C:\Users\xxxxxxxx\AppData\Local\Programs\Python\Python39\Lib\site-packages\kivy\deps

 再度pyinstallerを使ってexe化をしたら、うまくいきました。

まとめ

 pipコマンドでsdl2glewインストールされるフォルダと、Pyinstallerでビルドするときに参照するフォルダとが違うことが、原因のようでした。

とっと
とっと

以上になります!


この記事を書いた人

 1男3女の”とっと”です。

 愛知の大学を修了後、メーカーで人工衛星の開発に携わって16年。その間に国産ロケットの打ち上げに3回立ち会い、つくった衛星を見送ってきました。そのメーカーも辞めて、現在ではログハウス建築の仕事を楽しんでいます。

 会社員時代、30代半ばを過ぎたあたりから自分の”消費者根性”に嫌気がさし始めます。身の回りのこと全てについて、業者に言われるがまま当たり前のようにお金を払い、丸投げしてやってもらうこと、それによって「お金を稼がなければ」という足枷ができてしまっていることに気づき、どっと疲れてしまいました。

 人生を本当に楽しんでいくため、2023年の40歳を過ぎたころにようやく卒サラし、地元九州に戻って今に至ります。これまでの消費者根性から脱するため、このサイトでは自分でやってみたことの記録を残していきますので、なにかの参考になれば幸いです。