Requirements
- Python 3.8+ (64-bit)
- pip 20.3+
Install with pip
Upgrade pip
Make sure you are running pip 20.3 or later. Older versions will cause a
BackendUnavailable error.Install datatable
Install the latest stable release from PyPI:Binary wheels are provided for the following platforms:
| Platform | Details |
|---|---|
| macOS | Tested on macOS 10.12 (Sierra) through macOS 12 (Monterey) |
| Linux x86_64 / ppc64le | manylinux_2_17-compatible distributions (see PEP 600) |
| Windows | Windows 10 or later |
Install a development version
If you want to test a pre-release build before it is officially published:- macOS / Linux
- Windows
Development wheels are published to an S3 repository. Browse https://h2o-release.s3.amazonaws.com/datatable/index.html, find the wheel for your Python version and platform, then install it:
Build from source
Use this path if you are on a platform without a prebuilt wheel, or if you want to contribute to datatable.Install the latest source from GitHub
CXX environment variable before running the install.
The minimum supported compiler versions are:
- Clang 5+
- GCC 6+
- MSVC 19.14+
Set up an editable development install
If you want to modify datatable or add your own functionality:Build the core library
On macOS you may need Xcode Command Line Tools: run
xcode-select --install.
On Linux, if you see 'Python.h' file not found, install the development headers for your Python version, e.g. python3.8-dev._datatable.*.so file in src/datatable/lib/.make build (or make debug) after any C++ change, then restart Python. Only modified files are recompiled, so incremental builds usually take a few seconds.
Troubleshooting
pip._vendor.pep517.wrappers.BackendUnavailable
Your pip version is too old. Upgrade to 20.3+ with pip install pip --upgrade.
ImportError: cannot import name '_datatable'
The internal _datatable.*.so core library is missing, in the wrong location, or has the wrong name. Reinstall datatable. If the file is present but not under site-packages/datatable/lib/, move it there. If the suffix doesn’t match what Python expects, check it with:
Python.h: no such file or directory (source builds on Linux)
Install the Python development package: e.g., sudo apt install python3.8-dev.
fatal error: 'sys/mman.h' file not found (source builds on macOS)
Install Xcode Command Line Tools: xcode-select --install.
ImportError: This package should not be accessible
A misconfigured PYTHONPATH environment variable is shadowing the installation. Unset it and try again.
For questions not covered here, ask on Stack Overflow using the
[py-datatable] tag, or file an issue on GitHub.