ImportError в LangChain: проверьте окружение до переписывания кода

При ImportError сначала выясните, какой Python запускает программу и в каком окружении установлен пакет. Код может работать в терминале и падать в notebook, потому что они используют разные интерпретаторы. Немедленное переустановление всех библиотек затрудняет поиск причины.

Зафиксируйте минимальные факты

В учебном случае пакет установлен в виртуальном окружении проекта, а notebook использует системный Python. Версия зависимости в файле проекта здесь не объясняет ошибку: нужный пакет вообще находится в другом месте.

import sys
from importlib.metadata import version, PackageNotFoundError
print(sys.executable)
try:
    print(version("langchain"))
except PackageNotFoundError:
    print("langchain is not installed in this environment")

Код ничего не устанавливает и не изменяет. Он показывает путь интерпретатора и наличие метаданных пакета в текущем окружении. Наличие пакета ещё не гарантирует доступность конкретного символа, который вы импортируете.

Отделите отсутствие пакета от смены API

Если пакет найден, сведите проблему к одному импорту. Проверьте его по документации именно той версии, которая используется в проекте. Пример из старой статьи может ссылаться на перенесённый компонент или отдельную интеграцию.

Не копируйте автоматически последнюю команду обновления в рабочее окружение. Сначала сохраните текущие версии и проверьте изменение в изолированном проекте. LangChain и интеграционные пакеты могут обновляться независимо; важно воспроизводимое совместимое окружение, а не только один номер версии.

Проверьте собственные имена файлов

Файл проекта с именем langchain.py или каталог с таким именем может перекрывать установленную библиотеку. Изучите traceback и путь импортируемого модуля. Похожим образом мешают оставшиеся артефакты после переименования файлов.

Когда минимальный импорт проходит, верните конфигурацию модели, шаблон и остальные компоненты по одному. Тогда следующая ошибка будет относиться к конкретному слою, а не к большому запуску целиком. Не публикуйте содержимое переменных окружения при диагностике ключей доступа.

Полезный результат расследования — короткий воспроизводимый пример, версии и точный текст ошибки без секретов. Он помогает отличить ошибку окружения от необходимой миграции и позволяет проверить исправление повторным запуском.

Этот разбор подготовлен Latorn. Если вы уже знаете основы Python и API и хотите практиковать такие решения системно, сравните программу платного курса LangChain 1.0.x со своей задачей. Открытый пример выше можно проверить самостоятельно; он не заменяет полный проект.

Технические источники: Python importlib.metadata. Учебные ситуации и числа в статье придуманы для объяснения механизма.

Следующий шаг: LangChain: практические разборы формата, памяти и потоков. По смежным вопросам: LangChain вернул правильный JSON, но данные неверны: что проверять, Отсутствующее поле и null в ответе LLM: как не стереть данные.