AI最新ニュース 2026.07.04

LangChain「ModuleNotFoundError: No module named langchain_community」エラーの原因と解決方法【2026年版】

タグ:LangChain / Python / モジュール管理

TL;DR

  • LangChain 1.x系では langchain_community パッケージの導入が必須化。以前のバージョンから更新した場合、インポートエラーが発生する場合があります。
  • 影響範囲: LangChain 0.x系を使用中のすべてのプロジェクト。特にコミュニティ提供のLLM・エムベディング・ツールを利用している場合に顕著です。
  • 対応方法: pip install langchain_community でパッケージをインストール後、コード内のインポート文を更新する必要があります。
  • Python環境の不一致・バージョン競合・仮想環境の未使用も一般的なトラブル要因となります。

LangChain モジュール分割とは

背景:なぜモジュール分割が行われたか

LangChainプロジェクトは、利用者の増加と機能拡張に伴い、メインパッケージが肥大化していました。2024年以降のバージョンアップで、機能を複数の専門化されたパッケージに分割する戦略へシフトしました。この分割により、以下のようなメリットが生まれています:

  • インストールサイズの削減: ユーザーは必要なモジュールだけをインストール可能
  • 依存関係の最小化: 不要なライブラリをダウンロードする必要がなくなる
  • メンテナンスの効率化: 各モジュールの更新サイクルを独立させることで、バグ修正が素早くなる
  • コミュニティ寄稿の活性化: モジュール単位でのメンテナンスが容易になり、OSSコントリビューションが増加

モジュール分割の構成

LangChain 1.x系では、以下のように機能が分かれています:

パッケージ名役割
langchainコア機能(チェーン、プロンプト、メモリなど)
langchain_communityコミュニティ提供のLLM統合、ツール、エムベディング
langchain_openaiOpenAI API用の専用パッケージ
langchain_anthropicAnthropic(Claude)用の専用パッケージ
langchain_huggingfaceHugging Face連携用パッケージ
その他個別のLLM提供者向けパッケージ

重要: langchain_community は、OpenAIやAnthropicなど「大手以外の複数のLLM」に対応したインテグレーションを提供するパッケージです。


「ModuleNotFoundError: No module named ‘langchain_community’」エラーの原因

主な発生パターン

このエラーが出る原因は、以下の4つに分類されます:

1. langchain_community パッケージがインストールされていない

最も一般的な原因です。LangChain 0.x系から1.x系に更新した場合、自動で langchain_community がインストールされません。

# このコードを実行するとエラーになる
from langchain_community.llms import Ollama

原因: pip install langchain だけでは、langchain_community はインストールされないためです。

2. 古いインポートパスを使用している

LangChain 0.x系では、コミュニティ向けのクラスが langchain パッケージ直下に存在していました。1.x系では、これらのクラスが langchain_community に移動しています。

# LangChain 0.x系(古い方法)
from langchain.llms import Ollama  # これはエラーになる

# LangChain 1.x系(新しい方法)
from langchain_community.llms import Ollama  # 正しい

3. 複数のPython環境が混在している

コンピュータに複数バージョンのPythonがインストールされている場合、どのPython環境にパッケージをインストールするかで混乱が生じます。たとえば以下のようなシナリオです:

  • Pythonをシステムワイドにインストール
  • Anacondaなどの別のPython環境をインストール
  • プロジェクトごとの仮想環境を未使用

この場合、ターミナルで実行している pip install コマンドと、IDEが参照するPython環境が異なる可能性があります。

4. 環境が汚れている(複数バージョンの混在・バージョン不整合)

仮想環境を使用していない場合や、パッケージを正しくアンインストールしなかった場合、古いバージョンと新しいバージョンが混在することがあります。また、LangChainとその関連パッケージは頻繁に更新されるため、古いバージョンのlangchainと新しいバージョンのlangchain_communityなど、互いに非互換なバージョン組み合わせが問題を引き起こすこともあります。


「No module named openai」エラーの原因と関連性

同様のエラーとして「ModuleNotFoundError: No module named ‘openai’」も多く報告されています。これはOpenAIのPythonクライアントライブラリがインストールされていない状況を示しており、LangChainから連携する際に以下のコードでエラーになります:

from langchain_openai import ChatOpenAI

このエラーも根本的な原因は同じ—必要なパッケージのインストール不足です。


解決方法:ステップバイステップガイド

ステップ1:仮想環境の作成と有効化

まず、プロジェクト固有の仮想環境を作成し、システムワイドのPython環境との分離を実現します。

# 仮想環境の作成
python -m venv myenv

# 仮想環境の有効化(macOS/Linux)
source myenv/bin/activate

# 仮想環境の有効化(Windows)
myenv\Scripts\activate

仮想環境が有効になると、ターミナルのプロンプトに「(myenv)」という表示が現れます。

ステップ2:langchain_community をインストール

必要なパッケージをインストールします:

pip install langchain_community

複数のパッケージを一度にインストールする場合:

pip install langchain langchain_community langchain_openai

特定のバージョンを指定する場合(推奨):

pip install langchain==0.2.0 langchain_community==0.2.0

OpenAI連携やその他の連携を使用する場合:

# OpenAI連携を使用する場合
pip install langchain_openai openai

# その他の一般的な連携(必要に応じて)
pip install langchain_huggingface
pip install langchain_anthropic

ステップ3:既存コードのインポート文を更新

0.x系から移行する場合、以下のようにインポート文を変更します:

変更前(0.x系):

from langchain.llms import Ollama
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.document_loaders import TextLoader
from langchain.tools import DuckDuckGoSearchRun

変更後(1.x系):

from langchain_community.llms import Ollama
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.document_loaders import TextLoader
from langchain_community.tools import DuckDuckGoSearchRun

ステップ4:インストール内容の確認

インストールが正常に完了したかを確認します。

# インストール済みパッケージの確認
pip list | grep langchain

# または
pip show langchain
pip show langchain_community

ステップ5:コードをテスト

更新したコードが正しく動作するか確認します:

import langchain
print(langchain.__version__)

import langchain_community
print("langchain_community imported successfully")

# Ollama連携の場合
from langchain_community.llms import Ollama
llm = Ollama(model="llama2")
response = llm.invoke("Hello, how are you?")
print(response)

ステップ6:依存関係のクリーンアップ(オプション)

古いインストール済みパッケージをクリーンアップしたい場合:

# 既存のLangChain関連パッケージをすべてアンインストール
pip uninstall langchain langchain_community langchain_openai -y

# 必要なパッケージを再インストール
pip install langchain langchain_community

IDEやエディタでのトラブルシューティング

Visual Studio Code(VS Code)の場合

VSCodeが異なるPython環境を参照している場合があります。以下で確認・修正します。

  1. コマンドパレット(Ctrl+Shift+P)を開く
  2. 「Python: Select Interpreter」と入力
  3. 仮想環境のPythonパスを選択(通常は「./myenv/bin/python」など)

PyCharmの場合

  1. File → Settings(またはPyCharm → Preferences)
  2. Project: [プロジェクト名] → Python Interpreter
  3. 左上のギアアイコン → Add
  4. 「Existing environment」を選択
  5. 仮想環境のPythonパス(myenv/bin/python など)を指定

Jupyter Notebookの場合

Jupyter Notebookは独立したPython環境を持つため、別途セットアップが必要な場合があります。

# 仮想環境内で実行
pip install jupyter

# Kernelの登録
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"

その後、Notebookを起動して「Kernel」メニューから「Python (myenv)」を選択します。


既存ユーザーへの影響分析

移行が必須なケース

以下のいずれかに該当する場合は、必ず対応が必要です:

  1. LangChain 0.x系を使用中で、1.x系へのアップグレードを検討している

    • 新機能やセキュリティアップデートの利用を希望する場合
    • 依存するライブラリが LangChain 1.x系を必須としている場合
  2. 開発環境では動作するが、本番環境でエラーが出ている

    • 開発環境と本番環境で異なるバージョンがインストールされている可能性
    • 特に Docker や CI/CD パイプラインで注意
  3. 複数の LLM プロバイダーを使用している

    • OpenAI、Anthropic、Hugging Face など複数のサービスを連携させている場合
    • 各プロバイダー用のパッケージを個別にインストールする必要がある

移行が不要なケース

以下の場合は、無理に 1.x系 へアップグレードする必要はありません:

  • プロジェクトが安定稼働中で、新機能が不要

    • 0.x系を使用し続けることは可能です
    • ただし、長期的なセキュリティ面で不安は残ります
  • 依存ライブラリがすべて 0.x系 対応

    • 将来的には 1.x系 への移行を検討すべきです

大規模プロジェクトの移行戦略

複数のファイルやモジュールが存在する大規模プロジェクトでは、以下の手順で段階的に移行することをお勧めします:

1. インポート文の一括検索と置換

langchain.llms の出現箇所をすべて検索:

# Linux/Mac
grep -r "from langchain\.llms" --include="*.py"

# Windows (PowerShell)
Select-String -Path "*.py" -Pattern "from langchain\.llms"

IDE(VS Code、PyCharm)の置換機能を利用:

  • 検索対象: from langchain\.(.+) import
  • 置換内容: from langchain_community.$1 import

2. 段階的なテスト実行

各モジュール単位でテストを実行し、動作確認を行います:

pytest tests/test_llm_module.py
pytest tests/test_embeddings_module.py
pytest tests/test_tools_module.py

3. 依存関係ファイルの更新

requirements.txt または pyproject.toml を更新:

requirements.txt の場合:

langchain==0.2.0
langchain_community==0.2.0
langchain_openai==0.1.0

pyproject.toml の場合(Poetry):

[tool.poetry.dependencies]
langchain = "^0.2.0"
langchain_community = "^0.2.0"
langchain_openai = "^0.1.0"

よくある質問と回答

Q1: 0.x系と 1.x系を共存させられる?

いいえ、同じプロジェクト内での共存はサポートされていません。どちらか一方にバージョンを統一する必要があります。ただし、複数の独立したプロジェクトを別の仮想環境で運用することは可能です。

Q2: langchain_community の中身は何か?

OpenAIやAnthropicなど大手以外のLLM統合(Ollama、LocalAIなど)、複数の文書ローダー、検索ツール、エムベディングモデルなど、「コミュニティによってメンテナンスされる」機能群です。

Q3: すべてのコミュニティ機能を使うには?

pip install langchain_community のみでほぼすべてが導入されます。ただし、特定の依存関係(例:faiss-cpu など)が必要な場合は、別途インストールが必要になることもあります。

Q4: Docker で使う場合は?

Dockerfile の pip install に langchain_community を追加します:

FROM python:3.10

WORKDIR /app

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

CMD ["python", "main.py"]

Q5: Google Colab で使う場合は?

Google Colaboratoryを使用している場合、セット開始時に以下を実行します:

!pip install langchain langchain_community

その後、通常通りインポートしてください。ただし、セッション再起動後は再度インストールが必要となります。

Q6: Poetry や pip-tools を使用している場合は?

Poetry環境では、pyproject.toml に依存パッケージを記録し、poetry install で一括インストールします。pip-toolsを使用している場合は、requirements.in を編集して pip-compilerequirements.txt を生成します。


まとめ

LangChain 1.x系への移行は、初期段階では手間がかかりますが、長期的には以下のメリットがあります:

  • セキュリティ更新を継続的に受け取れる
  • パッケージサイズが最小化され、デプロイが軽量化
  • 新機能を素早く利用できる

今後のトラブルを回避するため、以下の習慣を推奨します:

  1. プロジェクト開始時に仮想環境を必ず作成する
  2. requirements.txt を常に保持し、バージョン管理にコミットする
  3. IDE・エディタの Python インタープリタ設定をセットアップ直後に確認する
  4. pip install 後に簡単なインポートテストで動作確認を実施する
  5. 定期的にパッケージをアップデートし、セキュリティ更新と互換性を確認する

直近で対応すべき開発者: 0.x系から1.x系への大型バージョンアップを計画している、または本番環境でエラーが出ている方 優先度: 高(特にセキュリティアップデートが必要な場合)


あわせて読みたい

参考ソース