# Installation

Pointblank can be installed using various package managers. The base installation gives you the core validation functionality, with optional dependencies for working with different data sources.


# Basic Installation

You can install Pointblank using your preferred package manager:


- <a href="" id="tabset-1-1-tab" class="nav-link active" data-bs-toggle="tab" data-bs-target="#tabset-1-1" role="tab" aria-controls="tabset-1-1" aria-selected="true">pip</a>
- <a href="" id="tabset-1-2-tab" class="nav-link" data-bs-toggle="tab" data-bs-target="#tabset-1-2" role="tab" aria-controls="tabset-1-2" aria-selected="false">uv</a>
- <a href="" id="tabset-1-3-tab" class="nav-link" data-bs-toggle="tab" data-bs-target="#tabset-1-3" role="tab" aria-controls="tabset-1-3" aria-selected="false">conda</a>
- <a href="" id="tabset-1-4-tab" class="nav-link" data-bs-toggle="tab" data-bs-target="#tabset-1-4" role="tab" aria-controls="tabset-1-4" aria-selected="false">pixi</a>


``` bash
pip install pointblank
```


``` bash
uv pip install pointblank
```


``` bash
conda install -c conda-forge pointblank
```


``` bash
# add pointblank to project
pixi init name-of-project
cd name-of-project
pixi add pointblank
```


# DataFrame Libraries

Pointblank requires a DataFrame library but doesn't include one by default, giving you the flexibility to choose either [Pandas](https://pandas.pydata.org) or [Polars](https://pola.rs):


- <a href="" id="tabset-2-1-tab" class="nav-link active" data-bs-toggle="tab" data-bs-target="#tabset-2-1" role="tab" aria-controls="tabset-2-1" aria-selected="true">Polars</a>
- <a href="" id="tabset-2-2-tab" class="nav-link" data-bs-toggle="tab" data-bs-target="#tabset-2-2" role="tab" aria-controls="tabset-2-2" aria-selected="false">Pandas</a>


``` bash
# Using pip
pip install pointblank[pl]

# Or manually
pip install polars>=1.24.0
```


``` bash
# Using pip
pip install pointblank[pd]

# Or manually
pip install pandas>=2.2.3
```


Pointblank works seamlessly with both libraries, and you can choose the one that best fits your workflow and performance requirements.


# Optional Dependencies


## Ibis Backends

To work with various database systems through [Ibis](https://ibis-project.org), you can install additional backends:


- <a href="" id="tabset-3-1-tab" class="nav-link active" data-bs-toggle="tab" data-bs-target="#tabset-3-1" role="tab" aria-controls="tabset-3-1" aria-selected="true">pip</a>
- <a href="" id="tabset-3-2-tab" class="nav-link" data-bs-toggle="tab" data-bs-target="#tabset-3-2" role="tab" aria-controls="tabset-3-2" aria-selected="false">uv</a>
- <a href="" id="tabset-3-3-tab" class="nav-link" data-bs-toggle="tab" data-bs-target="#tabset-3-3" role="tab" aria-controls="tabset-3-3" aria-selected="false">conda</a>
- <a href="" id="tabset-3-4-tab" class="nav-link" data-bs-toggle="tab" data-bs-target="#tabset-3-4" role="tab" aria-controls="tabset-3-4" aria-selected="false">pixi</a>


``` bash
pip install pointblank[sqlite]      # SQLite
pip install pointblank[duckdb]      # DuckDB
pip install pointblank[postgres]    # PostgreSQL
pip install pointblank[mysql]       # MySQL
pip install pointblank[mssql]       # Microsoft SQL Server
pip install pointblank[bigquery]    # BigQuery
pip install pointblank[pyspark]     # Apache Spark
pip install pointblank[databricks]  # Databricks
pip install pointblank[snowflake]   # Snowflake

# Example of installing multiple backends
pip install pointblank[duckdb,postgres,sqlite]
```


``` bash
uv pip install pointblank[sqlite]      # SQLite
uv pip install pointblank[duckdb]      # DuckDB
uv pip install pointblank[postgres]    # PostgreSQL
uv pip install pointblank[mysql]       # MySQL
uv pip install pointblank[mssql]       # Microsoft SQL Server
uv pip install pointblank[bigquery]    # BigQuery
uv pip install pointblank[pyspark]     # Apache Spark
uv pip install pointblank[databricks]  # Databricks
uv pip install pointblank[snowflake]   # Snowflake

# Example of installing multiple backends
uv pip install pointblank[duckdb,postgres,sqlite]
```


``` bash
conda install -c conda-forge pointblank-sqlite      # SQLite
conda install -c conda-forge pointblank-duckdb      # DuckDB
conda install -c conda-forge pointblank-postgres    # PostgreSQL
conda install -c conda-forge pointblank-mysql       # MySQL
conda install -c conda-forge pointblank-mssql       # Microsoft SQL Server
conda install -c conda-forge pointblank-bigquery    # BigQuery
conda install -c conda-forge pointblank-pyspark     # Apache Spark
conda install -c conda-forge pointblank-databricks  # Databricks
conda install -c conda-forge pointblank-snowflake   # Snowflake

# Example of installing multiple backends
conda install -c conda-forge pointblank-duckdb pointblank-postgres pointblank-sqlite
```


``` bash
pixi add pointblank-sqlite      # SQLite
pixi add pointblank-duckdb      # DuckDB
pixi add pointblank-postgres    # PostgreSQL
pixi add pointblank-mysql       # MySQL
pixi add pointblank-mssql       # Microsoft SQL Server
pixi add pointblank-bigquery    # BigQuery
pixi add pointblank-pyspark     # Apache Spark
pixi add pointblank-databricks  # Databricks
pixi add pointblank-snowflake   # Snowflake

# Example of installing multiple backends
pixi add pointblank-duckdb pointblank-postgres pointblank-sqlite
```


> **Note: Note**
>
> Even when using exclusively Ibis backends, you still need either Pandas or Polars installed since Pointblank's reporting functionality (powered by [Great Tables](https://posit-dev.github.io/great-tables)) requires a DataFrame library for rendering tabular reporting results.


## AI-Assisted Validation (Experimental)

Pointblank includes experimental support for AI-assisted validation plan generation:

``` bash
pip install pointblank[generate]
```

This installs the necessary dependencies for working with LLM providers to help generate validation plans. See the [Draft Validation](../../user-guide/advanced-validation/draft-validation.md) article for how to create validation plans from existing data.


## Development Version

If you want the latest development version with the newest features, you can install directly from GitHub:

``` bash
pip install git+https://github.com/posit-dev/pointblank.git
```


# Verifying Your Installation

You can verify your installation by importing Pointblank and checking the version:

``` python
import pointblank as pb
print(pb.__version__)
```


# System Requirements

- Python 3.10 or higher
- a supported DataFrame library (Pandas or Polars)
- optional: Ibis (for database connectivity)


# Next Steps

Now that you've installed Pointblank, you're ready to start validating your data. If you haven't read the [Introduction](../../user-guide/getting-started/index.md) yet, consider starting there to learn the basic concepts.

If you encounter any installation issues, please [open an issue on GitHub](https://github.com/posit-dev/pointblank/issues/new) with details about your system and the specific error messages you're seeing. The maintainers actively monitor these issues and can help troubleshoot problems.

For a quick test of your installation, try running a simple validation:

``` python
import pointblank as pb

# Load a small dataset
data = pb.load_dataset("small_table")

# Create a simple validation
validation = (
    pb.Validate(data=data)
    .col_exists(columns=["a", "b", "c"])
    .interrogate()
)

# Display the validation results
validation
```


# Command Line Interface

Once installed, Pointblank also provides a powerful command-line interface for quick data validation tasks:

``` bash
# Test the CLI with a built-in dataset
pb validate small_table --check rows-distinct

# Check if a column exists
pb validate small_table --check col-exists --column a

# Validate data ranges
pb validate small_table --check col-vals-lt --column a --value 10
```

The CLI is useful for:

- quick data quality checks in CI/CD pipelines
- exploratory data analysis from the terminal
- integration with shell scripts and automation workflows

> **Tip: See the CLI in Action**
>
> Watch our [interactive CLI demonstrations](../../examples/advanced-topics/cli-interactive.md) to see these commands executing in real-time with actual output formatting.

Learn more about the CLI capabilities in the [Command Line Interface](../../user-guide/the-pointblank-cli/index.md) guide.
