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

Python3.7+langchain0.0.27调用Neo4jPGStore遇模块缺失问题求助

问题与解决方案

问题描述

在Python 3.7.16的虚拟环境中,运行以下代码调用Neo4jPGStore时出现模块缺失错误:

from llama_index.graph_stores.neo4j import Neo4jPGStore

graph_store = Neo4jPGStore(
  username=os.getenv("NEO4J_USERNAME"),
  password=os.getenv("NEO4J_PASSWORD"),
  url=os.getenv("NEO4J_URI"),
  refresh_schema=False
)

错误日志:

ModuleNotFoundError                       Traceback (most recent call last)
/tmp/ipykernel_35120/1908928590.py in <module>
----> 1 from llama_index.graph_stores.neo4j import Neo4jPGStore
      2 
      3 
      4 graph_store = Neo4jPGStore(
      5   username=os.getenv("NEO4J_USERNAME"),

~/Documents/git_stuff/LeuphanaStuff/MasterThesis/.venv/lib/python3.7/site-packages/llama_index/__init__.py in <module>
     12 
     13 # embeddings
---> 14 from llama_index.embeddings.langchain import LangchainEmbedding
     15 from llama_index.embeddings.openai import OpenAIEmbedding
     16 

~/Documents/git_stuff/LeuphanaStuff/MasterThesis/.venv/lib/python3.7/site-packages/llama_index/embeddings/langchain.py in <module>
      4 from typing import Any, List
      5 
---> 6 from langchain.embeddings.base import Embeddings as LCEmbeddings
      7 
      8 from llama_index.embeddings.base import BaseEmbedding

ModuleNotFoundError: No module named 'langchain.embeddings'

因Python版本低于3.8,无法将langchain升级至0.0.27以上,询问是否不升级Python就无法搭建Neo4j数据库。

解决方案

不升级Python也能搭建并连接Neo4j数据库,问题出在llama_index与langchain的版本兼容,而非Neo4j本身。以下是两种解决思路:

1. 适配llama_index与langchain的兼容版本

  • 安装支持Python 3.7的langchain版本(如0.0.26及以下,该版本包含langchain.embeddings模块)
  • 安装与该langchain版本兼容的旧版llama_index(例如0.6.14版本,经测试与langchain 0.0.26兼容,可根据实际调整)
  • 执行安装命令示例:
    pip install langchain==0.0.26
    pip install llama_index==0.6.14
    

2. 直接使用Neo4j官方Python驱动

绕开llama_index与langchain的依赖问题,直接用Neo4j官方库连接数据库:

  • 安装官方驱动:
    pip install neo4j
    
  • 示例连接代码:
    from neo4j import GraphDatabase
    import os
    
    driver = GraphDatabase.driver(
        os.getenv("NEO4J_URI"),
        auth=(os.getenv("NEO4J_USERNAME"), os.getenv("NEO4J_PASSWORD"))
    )
    
    # 测试连接
    with driver.session() as session:
        result = session.run("MATCH (n) RETURN count(n) AS node_count")
        print("节点总数:", result.single()["node_count"])
    
    driver.close()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 22:13:11