Find answers from the community

Updated 11 months ago

Hi all, I have this odd piece of

At a glance

The community member is experiencing an ImportError when attempting to use a SimpleDirectoryReader from the llama_index library. The issue seems to be related to the import paths, as the library is trying to import from llama_index.readers.file instead of the correct llama_index.core.readers namespace.

The community members suggest that the issue may be related to a version mismatch or a problem with the Python environment. They recommend trying to reinstall the llama-index-readers-file package, as well as checking the Python version and environment variables. One community member was able to resolve the issue by purging the llama_index installation and reinstalling everything.

There is no explicitly marked answer in the comments, but the community members work together to troubleshoot the issue and provide suggestions to the original poster.

Useful resources
Hi all, I have this odd piece of behaviour that just doesn't make sense to me where I get an ImportError when attempting to use a SimpleDirectoryReader
O
W
28 comments
faulty code
Plain Text
parser = LlamaParse(
    api_key=[redacted],
    result_type="markdown" 
)


file_extractor = {".pdf": parser}
reader = SimpleDirectoryReader("./data", file_extractor=file_extractor)
documents = reader.load_data()
Plain Text
ImportError            Traceback (most recent call last)
File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\llama_index\core\readers\file\base.py:22, in _try_loading_included_file_formats()
     21 try:
---> 22     from llama_index.readers.file import (
     23         DocxReader,
     24         EpubReader,
     25         HWPReader,
     26         ImageReader,
     27         IPYNBReader,
     28         MarkdownReader,
     29         MboxReader,
     30         PandasCSVReader,
     31         PDFReader,
     32         PptxReader,
     33         VideoAudioReader,
     34     )  # pants: no-infer-dep
     35 except ImportError:

ImportError: cannot import name 'DocxReader' from 'llama_index.readers.file' (unknown location)
In the llama_index/CORE/readers/file it is trying to import form llama_index.readers.file, whilst I'm 99% sure that llama_index.readers doesn't even exist anymore, as it is now llama_index.core.readers
Even when looking at the codebase on github, the readers/file import is clearly nested in the core namespace.
Pretty sure I'm missing some minor stupid detail here πŸ˜…
You'll have to install this to use readers: pip install llama-index-readers-file
With v0.10.x all the loaders/agents/tools got converted into pypi package
Requirement already statisfied πŸ€”
Pretty sure this is up to date
Attachment
image.png
This is with the latest version?
Plain Text
Name: llama-index
Version: 0.10.13.post1
Summary: Interface between LLMs and your data
Home-page: https://llamaindex.ai
Author: Jerry Liu
Author-email: jerry@llamaindex.ai
License: MIT
Location: C:\Users\Niek\AppData\Local\Programs\Python\Python311\Lib\site-packages
Requires: llama-index-agent-openai, llama-index-cli, llama-index-core, llama-index-embeddings-openai, llama-index-indices-managed-llama-cloud, llama-index-legacy, llama-index-llms-openai, llama-index-multi-modal-llms-openai, llama-index-program-openai, llama-index-question-gen-openai, llama-index-readers-file, llama-index-readers-llama-parse
Required-by: 
Pretty sure this is the latest
Yeah its latest, let me try
Let me run this in a .py file real quick to see if my python versions aren't just acting up
Just running the imports in a .py script gives me errors? πŸ˜…
Plain Text
from llama_index.core.readers import SimpleDirectoryReader
from llama_index.core.storage.docstore import SimpleDocumentStore
from llama_index.core.node_parser import SimpleNodeParser
from llama_parse import LlamaParse 
import os
import nest_asyncio

Plain Text
ImportError: cannot import name 'StorageContext' from partially initialized module 'llama_index.core.storage.sto StorageContextrage_context' (most likely due to a circular import)
First case worked for me on colab
Attachment
image.png
you're import simpledirectoryreader from llamaindex.core and not llamaindex.core.readers?
also second worked for me:
Attachment
image.png
Let me purge llamaindex and reinstall everything
also importing from reader worked too
Yet another timeless classic, it seems that there was a rogue python version in my environment variables that was actively boycotting my imports
πŸ€¦β€β™‚οΈ
Thanks for your help regardless!
Add a reply
Sign up and join the conversation on Discord