watsonx.ai で提供されているサンプルノートブック「Use watsonx Granite Model Series, Chroma, and LangChain to answer questions (RAG)」は、Python 3.11 (Runtime 24.1 on Python 3.11) を使用しています。一方で、2026年1月に、IBM Runtime 24.1 Deprecation が発表されており、2026年1月末現在 Runtime 24.1 on Python 3.11 を使うと下のメッセージが表示されます。
そこで、サンプルノートブックを Runtime 25.1 on Python 3.12 で実行してみたところ、次のエラーが発生しました。今後に備え、Runtime 25.1 on Python 3.12 で実行できるようノートブックを更新します。
注)当記事は2026年1月時点の結果に基づいており、今後変更される場合があります。
発生したエラー
サンプルノートブックを変更せずそのまま Runtime 25.1 on Python 3.12 で実行していくと、次のところでRuntimeErrorが発生します。
from langchain_chroma import Chroma
RuntimeError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0.
Please visit https://docs.trychroma.com/troubleshooting#sqlite to learn how to upgrade.
エラーの原因
Python 3.12 ランタイムでは、chromadb(= LangChain の langchain_chroma が内部で呼ぶクライアント)が、標準(watsonx.ai Runtimeが提供)の sqlite3 が古い(3.35未満)と判定したためです。エラーメッセージのとおり、Chroma は SQLite ≥ 3.35.0 を要求します。
確認のため次のコードで現状のsqlite3のバージョンを確認すると、sqlite3 version: 3.34.1 でした。
import sqlite3
print("sqlite3 version:", sqlite3.sqlite_version)
対応方法
pysqlite3-binary で sqlite3 を差し替えます。この方法は、Chroma公式トラブルシューティングで紹介されています。
次のコードをノートブック最初のセルで実行するようにします。これにより、sqlite3 version: 3.51.1 が使われるようになりエラーが発生しなくなります。
%pip install -q pysqlite3-binary
__import__('pysqlite3')
import sys
sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')
from langchain_chroma import Chroma
print("sqlite3 version:", sqlite3.sqlite_version)
参考: ランタイム環境比較
次のコードを Runtime 24.1 on Python 3.11 と Runtime 25.1 on Python 3.12 それぞれのランタイムで実行して比較しました。
!cat /etc/os-release
import sqlite3, sys
print("Python:", sys.version)
print("sqlite3 (Python が参照している SQLite のバージョン):", sqlite3.sqlite_version)
Runtime 24.1 on Python 3.11 と Runtime 25.1 on Python 3.12 では、OSは同じ RHEL 9.7 ですが、sqlite3のバージョンは Runtime 25.1 on Python 3.12 の方が低いことがわかりました。


