DuckDB AWS Extension
raw JSON → 1.5.1 verified Fri May 01 auth: no python
Pip-installable DuckDB AWS extension for Amazon S3 and AWS Glue integration. Version 1.5.1 is compatible with DuckDB 1.5.1. Released on a per-DuckDB-version cadence; versions are pinned to the DuckDB minor release.
pip install duckdb-extension-aws==1.5.1 Common errors
error IO Error: Extension "aws" not found in registry ↓
cause DuckDB auto-loading fails or extension version mismatch. The extension must be explicitly installed.
fix
Run con.install_extension('aws') before con.load_extension('aws'). Ensure duckdb and duckdb-extension-aws versions match.
error ImportError: No module named 'duckdb_extension_aws' ↓
cause The extension is not a Python importable module; it must be loaded via DuckDB.
fix
Use duckdb.load_extension('aws') after connecting, not a Python import.
Warnings
breaking The extension version must exactly match your DuckDB version (e.g., both 1.5.1). Mismatch causes load failure. ↓
fix Install the exact same version for both duckdb and duckdb-extension-aws.
gotcha The extension must be installed AND loaded separately. install_extension downloads it, load_extension activates it. ↓
fix Always call con.install_extension('aws') then con.load_extension('aws') after connecting.
deprecated Python 3.8 support was dropped in version 1.4.0. ↓
fix Upgrade to Python 3.9+ or stay on duckdb-extension-aws==1.3.2.
Imports
- duckdb
import duckdb duckdb.load_extension('aws')
Quickstart
import duckdb
import os
# Load the AWS extension
con = duckdb.connect()
con.install_extension('aws')
con.load_extension('aws')
# Set AWS credentials (from environment or explicit)
con.execute("SET s3_region='us-east-1'")
# For production, use IAM roles or aws configure
# Query a file from S3
con.execute("SELECT count(*) FROM read_parquet('s3://my-bucket/data/*.parquet')").fetchone()