AIエージェントアプリを構築し、pyinstallerでexe化して配布しようとしたところ、ValueError: Unknown encoding cl100k_base.
が発生しました。対処方法を記録しておきます。
エラー内容
LangGraphとLangChainのLLMにOpenAIを用いたアプリケーションをpyinstallerでexe化し実行したところ以下のエラーが発生しました。
Traceback (most recent call last):
File “chat.py”, line 175, in
File “tiktoken\registry.py”, line 79, in get_encoding
ValueError: Unknown encoding cl100k_base.
Plugins found: []
tiktoken version: 0.8.0 (are you on latest?)
exe化する前のPythonスクリプトの状態では動いていたのでpyinstallerでのexe化が上手くいっていないようです。
原因
exe化の際に以下の2つのライブラリが不足していることが原因です。
- tiktoken_ext
- tiktoken_ext.openai_public
対応方法
.spec
ファイルのhiddenimportsに不足しているライブラリを追加することで対応できます。
a = Analysis(
['main.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[
"tiktoken_ext",
"tiktoken_ext.openai_public",
],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
まとめ
同じエラーになっている人が多いようでGitHubのFAQに対応方法が載っていました。このページのPackagingの部分です。エラーが発生した際にGitHubを見ると解決できることもあります。英語でとっつきにくいかもしれませんが、DeepLなどを駆使して読んでいきましょう。
コメント