我无法弄清楚 python 中的导入逻辑,我将使用 langchain 库中的现有示例
模块名称 langchain.chains.retrieval_qa.base.VectorDBQA 直接导入有效,即
from langchain import VectorDBQA
但是对于另一个模块名称 langchain.document_loaders.epub.UnstructedEPubLoader 直接导入是行不通的
from langchain import UnstructuredEPubLoader
会给我一个错误
我需要做
from langchain.document_loaders import UnstructuredEPubLoader
我不明白这背后的逻辑?我如何通过阅读文档知道哪些库可以直接导入,哪些需要遵循结构?
是否可以直接从主包(from package import module)导入某些东西,或者是否需要指定子包(from package.subpackage import module),其逻辑完全取决于库的内部结构如何设置,这在每个目录中的
__init__.py
文件中定义。
如果可以直接从主包导入模块,通常是因为主包中库的
__init__.py
文件具有该模块的特定导入语句,使其在该级别可用。如果未将其导入到 __init__.py
文件中,则您需要指定包中包含该模块的完整路径。
希望能帮到你