Installation
ETLPlus supports Python 3.13 and 3.14.
pip install etlplus
For an isolated CLI install, use either pipx or uv:
pipx install etlplus
uv tool install etlplus
Choose pip install etlplus when you want the ETLPlus library and CLI in the active Python
environment. Choose pipx install etlplus for the preferred isolated CLI install or uv tool install etlplus when you manage command-line tools through uv.
These installer paths are first-class for the base CLI artifact. They install the same PyPI package
as pip install etlplus, including the stable-line default dependency set.
Conda-forge status: the tagged PyPI sdist support gate has passed cross-platform recipe validation on Linux, macOS, and Windows. Until the conda-forge feedstock is accepted and published, use the PyPI-based installers above for supported installs.
For development:
pip install -e ".[dev]"
The default install includes the non-native dependencies used by the built-in file handlers for
common binary, columnar, spreadsheet, and embedded-database formats such as cbor2, duckdb,
fastavro, msgpack, openpyxl, odfpy, pandas, pyarrow, pymongo, xlrd, and xlwt.
This is intentional for the stable line. ETLPlus treats the documented CLI, etlplus.ops,
etlplus.api, and the implemented built-in file handlers as one supported default runtime surface,
so the base install keeps the dependencies needed for that surface together instead of pushing core
implemented handlers behind extras.
The installer review keeps that dependency posture unchanged: pip, pipx, and uv tool install
all install the same broad base runtime. A leaner default install would be a separate
breaking-design decision for a future major release, not a minor v1.x change.
For development with full optional file-format support:
pip install -e ".[dev,file]"
For runtime-only optional file-format support:
pip install -e ".[file]"
For runtime cloud-storage support:
pip install -e ".[storage]"
For optional BigQuery connector metadata and readiness support:
pip install -e ".[database-bigquery]"
For optional Snowflake connector metadata and readiness support:
pip install -e ".[database-snowflake]"
The file extra is now reserved for the remaining scientific and specialty format dependencies such
as netCDF4, pyreadr, pyreadstat, and xarray.
That split is also intentional: the file extra is reserved for narrower optional workflows rather
than for the built-in formats that ETLPlus expects most users of the default runtime to have
available.
The database-bigquery extra installs the optional packages used by the additive BigQuery database
connector shape (provider: bigquery plus project and dataset when you are not supplying a
connection string).
The database-snowflake extra installs the optional packages used by the additive Snowflake
database connector shape (provider: snowflake plus account, database, and schema when you
are not supplying a connection string).
See the Getting Started environment reference for the current environment-variable reference,
environment-first secret tokens, and provider credential hints that etlplus check --readiness
understands for S3, Azure storage, BigQuery, and Snowflake.
Documentation contributors
Install the docs toolchain used by local builds, CI, and Read the Docs:
pip install -e ".[docs]"
From there, build the docs locally with:
make docs-strict
Next steps:
Continue with the quickstart.
Explore the examples guide.
Browse the API reference.