Module Loading Failures
Confiance : high
module-loadingimport-errorspython-packagingproduction-failuresundefined-referencespackage-structuredeployment-issuesassistant-rhcritical-bugsrag-systemsnameerrorimporterrorsystem-crashes
Common failure mode in Python applications where modules fail to load due to undefined imports, incorrect package references, or missing dependencies. Particularly problematic in production AI systems where import failures can cause complete system outages.
Common Causes
Incorrect Import Paths
# Fails when not in correct directory structure
from config import settings # Should be src.rag.config
from pipeline import RAGPipeline # Missing package qualification
Missing sys.path Configuration
# Insufficient path setup
sys.path.append(os.getcwd()) # Only adds current directory
# Missing: sys.path.append('src') for package access
undefined-references in Imports
# Module loads but classes undefined
from data_engineering.extract import PDFToText # Import succeeds
pdf_extractor = PDFToText() # Fails - missing required arguments
Critical Case Study: Assistant-RH
The assistant-rh system exhibited multiple module loading failures:
- Entry Point Failure -
src/rag/main.pyimports from non-existent paths - Silent Fallbacks - Scripts fall back to basic extractors when advanced modules fail
- Cascade Failures - Single import error breaks entire module chains
- Runtime Discovery - Issues only surface during actual execution
Impact Patterns
Development Phase
- Silent failures during testing
- Inconsistent behavior across environments
- Difficulty reproducing issues locally
Production Deployment
- Complete system startup failures
- Service unavailability
- Rollback requirements
- Customer impact
Prevention Strategies
Package Structure Validation
# Proper package initialization
__init__.py files in all package directories
Explicit relative/absolute import declarations
Import Testing
# Automated import validation
def test_all_imports():
import src.rag.main # Should not raise
import src.rag.pipeline # Verify all dependencies
Path Management
# Robust sys.path configuration
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent))
Best Practices for RAG Systems
Dependency Management
- Explicit requirements.txt with pinned versions
- Virtual environment isolation
- Docker containerization for consistency
Module Organization
- Clear separation between data processing and serving layers
- Minimal cross-dependencies between modules
- Factory patterns for dynamic component loading
Error Handling
- Graceful degradation when optional modules fail
- Clear error messages for missing dependencies
- Health check endpoints for import validation
See also
- undefined-references
- python-packaging
- production-failures
- assistant-rh
- rag-systems