pythonプログラムのexe化について
解決したいこと
pyinstallerで作成したexeファイルを実行するとエラーが出て実行できない。
pythonで作成したPCアプリをpyinstallerを使用してexe化し、specファイルをカスタマイズして反映させたところまではよかったのですが、いざ動作確認をしようとexeファイルを開いてみたところ後述するエラーが出てしまいました。モジュールのインポートに失敗しているようなのですがmain.pyを直接実行したときはうまく動作するので改善点が分かりません。どなたか原因がわかる方がいらっしゃれば教えていただきたいです。
発生している問題・エラー
"Unhandled exeption in script"
Failed to execute script 'main' due to unhandledexeption:'module'object is not callable
Traceback (most recent call last):
File "main.py", line 2, in <module>
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "gui.py", line 2, in <module>
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "kivy\__init__.py", line 293, in <module>
File "PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py", line 67, in _pyi_pkgutil_iter_modules
TypeError: 'module' object is not callable
exeファイルの実行時にこのエラーが出ます。
ここに表記されているファイルも、main.pyとgui.py以外は作成した覚えも外部からインストールした覚えもないためnot callableといわれてもどうしたらいいのか分かりません。main.pyとgui.pyの2行目は下記の通り、guiモジュールとkivyのインポートを行っているので、kivy上で何か問題が起きたのではないかなと思っているのですが、お分かりの方がいたら教えていただけると幸いです。
該当するソースコード
#main.py 2行目
import gui
#gui.py 2行目
import kivy
また、カスタマイズしたspecファイルの内容も公開できる範囲で載せておきます。
a = Analysis(
['main.py'],
pathex=['root\src'],
binaries=[],
datas=[
('sound/up.mp3', 'sound'), # up.mp3 を sound ディレクトリに配置
('sound/down.mp3', 'sound') # down.mp3 を sound ディレクトリに配置
],
hiddenimports=[
(ここに使用したライブラリや作成したモジュール(6個)などを全て入れました。)
],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure, a.zipped_data)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='アプリ名',
icon = 'pic\アプリ名.jpg',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
coll = COLLECT(
exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='アプリ名'
)
自分で試したこと
kivy,pyinstallerの再インストール
仮想環境の再構築(Anaconda)
python venvで仮想環境を作り直してpyinstallerで再度exe化(追記)
いずれも試した前後でも同様のエラーが出ました。