3.8 KiB
Installation
Supported Platforms
Python 2.6 and 2.7 are supported. Both CPython (the standard Python implementation) and PyPy are supported and tested against.
Linux, OSX, and Windows are supported.
Support for Python 3 is planned.
Installation through pip
pip is the suggested tool for installing packages. It will handle installing all python dependencies for the driver at the same time as the driver itself. To install the driver:
pip install cassandra-driver
You can use pip install --pre cassandra-driver
if you
need to install a beta version.
Manual Installation
You can always install the driver directly from a source checkout or tarball. When installing manually, ensure the python dependencies are already installed. You can find the list of dependencies in requirements.txt.
Once the dependencies are installed, simply run:
python setup.py install
(Optional) Non-python Dependencies
The driver has several optional features that have non-Python dependencies.
C Extensions
By default, two C extensions are compiled: one that adds support for
token-aware routing with the Murmur3Partitioner
, and one
that allows you to use libev for the event
loop, which improves performance.
When installing manually through setup.py, you can disable both with
the --no-extensions
option, or selectively disable one or
the other with --no-murmur3
and
--no-libev
.
To compile the extenions, ensure that GCC and the Python headers are available.
On Ubuntu and Debian, this can be accomplished by running:
$ sudo apt-get install gcc python-dev
On RedHat and RedHat-based systems like CentOS and Fedora:
$ sudo yum install gcc python-devel
On OS X, homebrew installations of Python should provide the necessary headers.
libev support
The driver currently uses Python's asyncore
module for
its default event loop. For better performance, libev
is
also supported through a C extension.
If you're on Linux, you should be able to install libev through a package manager. For example, on Debian/Ubuntu:
$ sudo apt-get install libev4 libev-dev
On RHEL/CentOS/Fedora:
$ sudo yum install libev libev-devel
If you're on Mac OS X, you should be able to install libev through Homebrew. For example, on Mac OS X:
$ brew install libev
If successful, you should be able to build and install the extension
(just using setup.py build
or
setup.py install
) and then use the libev event loop by
doing the following:
>>> from cassandra.io.libevreactor import LibevConnection
>>> from cassandra.cluster import Cluster
>>> cluster = Cluster()
>>> cluster.connection_class = LibevConnection
>>> session = cluster.connect()
Compression Support
Compression can optionally be used for communication between the driver and Cassandra. There are currently two supported compression algorithms: snappy (in Cassandra 1.2+) and LZ4 (only in Cassandra 2.0+). If either is available for the driver and Cassandra also supports it, it will be used automatically.
For lz4 support:
$ pip install lz4
For snappy support:
$ pip install python-snappy
(If using a Debian Linux derivative such as Ubuntu, it may be easier
to just run apt-get install python-snappy
.)
Setting SSL
Andrew Mussey has published a thorough guide on Using SSL with the DataStax Python driver.