导入langchain => 错误:TypeError:issubclass() arg 1必须是一个类

26

我想在我的项目中使用Langchain。

因此,我使用以下命令进行安装:pip install langchain

但是,在导入“langchain”时,我遇到了以下错误:

File /usr/lib/python3.8/typing.py:774, in _GenericAlias.__subclasscheck__(self, cls)
    772 if self._special:
    773     if not isinstance(cls, _GenericAlias):
--> 774         return issubclass(cls, self.__origin__)
    775     if cls._special:
    776         return issubclass(cls.__origin__, self.__origin__)

TypeError: issubclass() arg 1 must be a class

有谁能解决这个错误吗?

1
请展示相关代码和完整的回溯信息(不仅仅是最后一行)。但首先要猜测:确保您自己的文件名称不会与库中的名称冲突。 - h4z3
7个回答

19
typing-inspect==0.8.0
typing_extensions==4.5.0

我们成功地将 typing_extensions 固定在 4.5.0 版本。但是我们没有包含 typing-inspect,所以可能会因人而异。 - skypanther
这导致错误:pip的依赖解析器目前没有考虑到所有已安装的包。此行为是以下依赖冲突的源头。 langchain 0.0.162需要pydantic<2,>=1,但未安装。 apache-beam 2.49.0需要protobuf<4.24.0,>=3.20.3,但您安装的是不兼容的 protobuf 3.19.6。 pydantic-core 2.4.0需要 typing-extensions!=4.7.0,>=4.6.0,但您安装的是不兼容的 typing-extensions 4.5.0。 torchaudio 0.12.0需要torch==1.12.0,但您安装的是不兼容的 torch 1.12.1。 - sAguinaga
2
如果你提供完整的命令(pip install ...)和更多的上下文信息,你的回答会更好。 - Melkor.cz

18

所以我花了几个小时尝试,最后找到了一个解决方案,希望能对你有帮助。

首先,我做了这个:

pip install typing-inspect==0.8.0 typing_extensions==4.5.0

然后:

pip install pydantic -U

这之后会抛出一个错误,但我再次尝试:

pip install pydantic==1.10.11

然后它开始工作。


一样的。它在之后起作用了。 - Amogh Mishra
你在哪里插入了以下行 'typing-inspect==0.8.0 typing_extensions==4.5.0'?你是将其用作环境变量吗? - Antonio
1
你确实需要执行 pip install pydantic -U,直接使用 pip install pydantic==1.10.11。@Antonio 这需要使用 pip install 命令运行,例如 pip install typing-inspect==0.8.0 typing_extensions==4.5.0 - Pardeep Singh
这个解决方案对我有效。 - undefined
谢谢,这对我有用。但我想知道背后的原因。 - undefined

11
安装了这么多的包之后,使用下面的包找到了解决方案。
!pip install pydantic -U

3
你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人能够确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - Community
1
那对我也起作用了 @Mayur_Ghadge - 感谢你的贡献! - Chris
1
也在这里工作了!刚好在导入csvloader类时遇到了这个问题,而上面的typing_extensions没有起作用。 - Rohan
1
在这里也工作过!只有在导入csvloader类时才遇到了这个问题,而上面的typing_extensions没有解决。 - undefined

4

已在 Pydantic 1.10.8 中修复。 对于诗歌,请在您的 pyproject.toml 文件中使用 pydantic = "^1.10.8"


2

安装langchain版本0.0.133。在此版本之后,出现了错误。


1
导入错误:无法从“langchain.agents.agent_toolkits.pandas.prompt”中导入名称“SUFFIX”(/home/konsultera/Downloads/private_chat_gpt/chatgpt_env/lib/python3.8/site-packages/langchain/agents/agent_toolkits/pandas/prompt.py)---> 对于您建议的版本,出现了此错误。 - M. D. P
1
今天我遇到了相同的错误,但是这个方法解决了它。 - prout

0

-6
错误信息表明Python中的typing模块存在问题。似乎subclass()函数被调用时传入了一个不是类的参数。
要解决这个错误,您可以尝试将typing模块更新到最新版本。您可以通过运行以下命令来实现:
pip install 

如果问题仍然存在,您还可以尝试重新安装langchain软件包:
pip uninstall langchain
pip install langchain

如果这些解决方案都不起作用,那么可能是 langchain 包与您的 Python 版本存在兼容性问题。在这种情况下,您可能需要使用不同版本的 Python 或联系包的维护者以获取进一步的帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接