Skip to content

Troubleshooting

Common issues and solutions for the Ethopy Analysis package.

Installation Issues

Package Not Found After Installation

Problem: ethopy-analysis command not found or import errors

Solutions:

# Check if package is installed
pip show ethopy-analysis

# Reinstall in development mode
pip install -e .

# Verify installation
python -c "import ethopy_analysis; print('Success')"

Permission Errors During Installation

Problem: Permission denied when installing package

Solutions:

# Use user installation
pip install --user -e .

# Or use virtual environment
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -e .

Missing Dependencies

Problem: Import errors for specific modules

Solutions:

# Install all optional dependencies
pip install -e ".[dev,docs]"

# Install specific dependency groups
pip install -e ".[dev]"  # Development tools
pip install -e ".[docs]"  # Documentation tools

# Update all packages
pip install --upgrade -e .

Database Connection Issues

Cannot Connect to Database

Problem: Connection timeout or authentication errors

Solutions:

# Test connection
ethopy-analysis test-db-connection

# Check environment variables
echo $DJ_HOST
echo $DJ_USER
echo $DJ_PASSWORD

# Set environment variables
export DJ_HOST="database.example.org:3306"
export DJ_USER="your_username"
export DJ_PASSWORD="your_password"

Configuration File Not Found

Problem: Configuration file not detected

Solutions:

# Create configuration file
cp dj_conf.template.json dj_conf.json

# Check file locations
ls -la dj_conf.json config.json ethopy_config.json

# Use absolute path
python -c "from ethopy_analysis.config.settings import load_config; print(load_config('/full/path/to/config.json'))"

Schema Access Errors

Problem: Cannot access database schemas

Solutions:

# Check schema configuration
pfrom ethopy_analysis.config.settings import get_database_config
rint(get_database_config())

# Test schema access
from ethopy_analysis.db.schemas import get_schema
experiment = get_schema("experiment")

CLI Issues

Command Not Found

Problem: ethopy-analysis command not available

Solutions:

# Check if CLI is installed
which ethopy-analysis

# Reinstall package
pip install -e .

# Run module directly
python -m ethopy_analysis.cli --help

Output Directory Errors

Problem: Cannot create output directories

Solutions:

# Check directory permissions
ls -la ./plots

# Create directory manually
mkdir -p ./plots ./reports

# Use different directory
ethopy-analysis analyze-animal --animal-id 123 --output-dir ~/analysis

No Data Found for Animal

Problem: "No sessions found for animal X"

Solutions:

# Check animal ID exists in database
ethopy-analysis session-summary --animal-id 123 --session 1

# Adjust minimum trials threshold
ethopy-analysis analyze-animal --animal-id 123 --min-trials 1

# Check date range
python -c "from ethopy_analysis.data.loaders import get_sessions; print(get_sessions(123))"

Python API Issues

Import Errors

Problem: Cannot import package modules

Solutions:

# Check package installation
import sys
print(sys.path)

# Try explicit imports
from ethopy_analysis.data.loaders import get_sessions
from ethopy_analysis.plots.animal import plot_session_performance

# Check for missing dependencies
try:
    import matplotlib
    import pandas
    import datajoint
except ImportError as e:
    print(f"Missing dependency: {e}")

Plotting Errors

Problem: Matplotlib or plotting function errors

Solutions:

# Check matplotlib backend
import matplotlib
print(matplotlib.get_backend())

# Set backend if needed
matplotlib.use('Agg')  # For headless systems

# Check data before plotting
print(df.shape)
print(df.head())

# Use save_path to avoid display issues
from ethopy_analysis.plots.animal import plot_session_performance
fig, ax = plot_session_performance(123, sessions, save_path="test.png")

Performance Issues

Slow Data Loading

Problem: Data loading takes too long

Solutions:

# Use date filters
sessions = get_sessions(animal_id=123, from_date="2023-01-01", to_date="2023-12-31")

# Filter by minimum trials
sessions = get_sessions(animal_id=123, min_trials=10)

# Use specific session
trials = get_trials(animal_id=123, session=5)

Memory Issues

Problem: Out of memory errors

Solutions:

# Process sessions in smaller batches
session_list = sessions['session'].values
for batch in [session_list[i:i+10] for i in range(0, len(session_list), 10)]:
    # Process batch
    pass

# Use specific date ranges
sessions = get_sessions(animal_id=123, from_date="2023-01-01", to_date="2023-01-31")

Development Issues

Code Style Errors

Problem: Linting or formatting issues

Solutions:

# Check with ruff
ruff check src/

# Fix automatically
ruff check --fix src/

# Check with pylint
pylint src/ethopy_analysis/

# Format code
black src/ethopy_analysis/

Test Failures

Problem: Unit tests failing

Solutions:

# Run tests
pytest tests/

# Run specific test
pytest tests/test_data_loaders.py

# Run with coverage
pytest --cov=ethopy_analysis tests/

Environment Issues

Jupyter Notebook Problems

Problem: Cannot run notebooks in examples/

Solutions:

# Install jupyter
pip install jupyter

# Install kernel
python -m ipykernel install --user --name=ethopy-analysis

# Start notebook
jupyter notebook examples/

Virtual Environment Issues

Problem: Package not available in virtual environment

Solutions:

# Activate virtual environment
source venv/bin/activate  # Windows: venv\Scripts\activate

# Install package in virtual environment
pip install -e .

# Check virtual environment
which python
which pip

Getting Help

Check Documentation

Debug Information

# System information
import sys
print(f"Python version: {sys.version}")

# Package information
import ethopy_analysis
print(f"Package location: {ethopy_analysis.__file__}")

# Database connection
from ethopy_analysis.db.schemas import test_connection
print(f"Database connection: {test_connection()}")

Common Commands for Debugging

# Check package version
pip show ethopy-analysis

# Test CLI
ethopy-analysis --help

# Test database
ethopy-analysis test-db-connection

# Check configuration
python -c "from ethopy_analysis.config.settings import get_config_summary; print(get_config_summary())"

Reporting Issues

When reporting bugs, include: - Python version - Package version - Error messages - Configuration details (without passwords) - Steps to reproduce

Community Support

  • GitHub Issues: Report bugs and feature requests
  • Examples: Check examples/ directory for working code
  • Documentation: Complete API reference available