You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linode部署Flask应用报错:找不到langchain.chains.question_answering模块

问题:Flask应用部署Linode时LangChain导入错误

环境差异

  • 本地:Python 3.10.6,测试运行正常
  • Linode服务器:Python 3.7.3,LangChain版本0.0.27

导入代码

from flask import Flask, render_template, request
import openai
import pinecone
import json
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.chains.question_answering import load_qa_chain
from langchain.llms import OpenAI
from langchain.vectorstores import Pinecone 
import os

运行错误

ModuleNotFoundError: No module named 'langchain.chains.question_answering'

已尝试操作

  • 更新Python与LangChain
  • 重启服务器
  • 重建服务器
  • 删除虚拟环境并重装LangChain和Python

虚拟环境依赖列表

pip list
Package            Version
------------------ ---------
aiohttp            3.8.5
aiosignal          1.3.1
annotated-types    0.5.0
async-timeout      4.0.2
asynctest          0.13.0
attrs              23.1.0
certifi            2023.7.22
charset-normalizer 3.2.0
click              8.1.6
dnspython          2.3.0
Flask              2.2.5
frozenlist         1.3.3
greenlet           2.0.2
gunicorn           21.2.0
idna               3.4
importlib-metadata 6.7.0
itsdangerous       2.1.2
Jinja2             3.1.2
langchain          0.0.27
loguru             0.7.0
MarkupSafe         2.1.3
multidict          6.0.4
numpy              1.21.6
openai             0.27.8
packaging          23.1
pinecone-client    2.2.1
pip                23.2.1
pkg_resources      0.0.0
pydantic           1.10.9
pydantic_core      2.3.0
python-dateutil    2.8.2
PyYAML             6.0.1
requests           2.31.0
setuptools         68.0.0
six                1.16.0
SQLAlchemy         2.0.19
tqdm               4.65.0
typing_extensions  4.7.1
urllib3            2.0.4
Werkzeug           2.2.3
yarl               1.9.2
zipp               3.15.0

解决方案

  1. 适配LangChain旧版本导入路径
    LangChain 0.0.27版本中,load_qa_chain的导入路径与新版本不同,将导入语句修改为:
# 替换原导入行
from langchain.chains import load_qa_chain

若需要带来源的QA链,可尝试:

from langchain.chains.qa_with_sources import load_qa_chain
  1. 升级服务器Python版本
    Python 3.7.3已停止维护,对新版LangChain支持有限,建议升级到3.8+(如本地的3.10版本):
  • 编译安装Python 3.10到Linode服务器(避免覆盖系统默认Python)
  • 基于Python 3.10创建新的虚拟环境
  • 重新安装所有依赖,匹配本地使用的LangChain版本
  1. 确认虚拟环境激活状态
    运行Flask前,通过以下命令确认当前使用的Python环境是否为目标虚拟环境:
which python
python --version

确保输出的版本和路径与虚拟环境一致。

内容的提问来源于stack exchange,提问作者LadyOlvira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 09:52:47