# Installation

## Python Version

Clickhouse-driver supports Python 3.4 and newer and PyPy.

## Build Dependencies

Starting from version 0.1.0 for building from source gcc, python and linux headers are required.

Example for python:alpine docker image:

>     apk add gcc musl-dev

By default there are wheels for Linux, Mac OS X and Windows.

Packages for Linux and Mac OS X are available for python: 3.6 – 3.11.

Packages for Windows are available for python: 3.6 – 3.11.

Starting from version 0.2.3 there are wheels for musl-based Linux distributions.

## Dependencies

These distributions will be installed automatically when installing clickhouse-driver.

- pytz library for timezone calculations.

- enum34 backported Python 3.4 Enum.

### Optional dependencies

These distributions will not be installed automatically. Clickhouse-driver will detect and use them if you install them.

- clickhouse-cityhash provides CityHash algorithm of specific version, see CityHash algorithm notes.

- lz4 enables LZ4/LZ4HC compression support.

- zstd enables ZSTD compression support.

## Installation from PyPI

The package can be installed using `pip`:

>     pip install clickhouse-driver

You can install extras packages if you need compression support. Example of LZ4 compression requirements installation:

>     pip install clickhouse-driver[lz4]

You also can specify multiple extras by using comma. Install LZ4 and ZSTD requirements:

>     pip install clickhouse-driver[lz4,zstd]

## NumPy support

You can install additional packages (NumPy and Pandas) if you need NumPy support:

>     pip install clickhouse-driver[numpy]

NumPy supported versions are limited by `numpy` package python support.

## Installation from github

Development version can be installed directly from github:

>     pip install git+https://github.com/mymarilyn/clickhouse-driver@master#egg=clickhouse-driver