zylon-ai/private-gpt · error · ImportError
Delimited text reader dependencies are not installed.
Error message
Delimited text reader dependencies are not installed.
What it means
Raised as ImportError by _delimiter_reader() in factories/text.py when the lazy import of the DelimiterTextReader module fails. Unlike the markitdown/pptx factories, this helper calls format_missing_dependency_message with no extras argument, so the message has no install command — the delimited-text reader's dependencies are expected to be core (pandas/CSV-style deps), and an ImportError here usually indicates a broken environment rather than a missing optional extra. The chained __cause__ names the actually missing module.
Source
Thrown at private_gpt/components/readers/factories/text.py:12
from private_gpt.components.readers.base_reader import IngestionReader
from private_gpt.components.readers.factories.base import ReaderFactory
from private_gpt.utils.dependencies import format_missing_dependency_message
def _delimiter_reader() -> IngestionReader:
try:
from private_gpt.components.readers.text.delimiter_reader import (
DelimiterTextReader,
)
except ImportError as e:
raise ImportError(
format_missing_dependency_message(
"Delimited text reader",
)
) from e
return DelimiterTextReader()
def _email_reader() -> IngestionReader:
try:
from private_gpt.components.readers.text.email_reader import (
EmailTextReader,
)
except ImportError as e:
raise ImportError(
format_missing_dependency_message(
"Email reader",
)
) from eView on GitHub (pinned to 4a030776a3)
Solutions
- Inspect e.__cause__ in the traceback to identify the exact missing module.
- Re-sync the environment: uv sync --inexact --extra ingest (or the full set of extras you use) to restore missing core deps.
- If a specific package (e.g., pandas) is missing, install it explicitly: uv pip install pandas.
- Confirm you are running with the intended interpreter (which python / .venv/bin/python) — editor/IDE often picks another env.
Example fix
# diagnose the real missing module
try:
from private_gpt.components.readers.text.delimiter_reader import DelimiterTextReader
except ImportError as e:
print("actually missing:", e)
# then repair the env
# uv sync --inexact --extra ingest Defensive patterns
Strategy: validation
Validate before calling
def delimiter_reader_available() -> bool:
try:
from private_gpt.components.readers.text.delimiter_reader import DelimiterTextReader # noqa: F401
return True
except ImportError:
return False
if not delimiter_reader_available():
raise SystemExit("Environment incomplete: re-run uv sync --inexact (with your extras)") Type guard
def delimiter_reader_available() -> bool:
try:
from private_gpt.components.readers.text.delimiter_reader import DelimiterTextReader # noqa: F401
return True
except ImportError:
return False Try / catch
try:
reader = _delimiter_reader()
except ImportError as e:
logger.error("missing module: %r", e.__cause__ or e)
raise SystemExit("Repair environment with: uv sync --inexact --extra ingest") from e Prevention
- This error implies a broken env (no extra exists for it) — check interpreter/env mismatch first.
- Always launch through the project venv (uv run / .venv/bin/python) to avoid importing against a foreign site-packages.
When it happens
Trigger: Selecting the 'text' reader path that instantiates the delimited-text sub-reader while the import of private_gpt.components.readers.text.delimiter_reader (or its transitive imports, e.g., pandas) fails in the current interpreter.
Common situations: Partial/interrupted uv sync or pip install leaving dependencies missing; a venv activated for a different project; dependency conflicts downgrading or removing pandas; running from an editor with a different interpreter than the one deps were installed into.
Related errors
- Email reader dependencies are not installed.
- MarkItDown reader dependencies are not installed. Install wi
- PPTX reader dependencies are not installed. Install with `uv
- HTML reader dependencies are not installed. Install with `uv
- Redis cache dependencies are not installed. Install with `uv
AI-assisted analysis of zylon-ai/private-gpt@4a030776a3 (2026-08-15).
Data as JSON: /api/errors/1b777724a1339050.
Report an issue: GitHub.