1. Installing scikit-image#
How you should install
scikit-image depends on your needs and skills:
Or, build the package from source. Do this if you’d like to contribute to development.
1.1. Supported platforms#
Windows 64-bit on x86 processors
macOS on x86 and M (ARM) processors
Linux 64-bit on x86 processors
While we do not officially support other platforms, you could still try building from source.
1.2. Version check#
To see whether
scikit-image is already installed or to check if an install has
worked, run the following in a Python shell or Jupyter notebook:
import skimage as ski print(ski.__version__)
or, from the command line:
python -c "import skimage; print(skimage.__version__)"
python is unsuccessful.)
You’ll see the version number if
scikit-image is installed and
an error message otherwise.
1.3. Installation via pip and conda#
These install only
scikit-image and its dependencies; pip has an option to
include related packages.
While it is possible to use pip without a virtual environment, it is not advised: virtual environments create a clean Python environment that does not interfere with any existing system installation, can be easily removed, and contain only the package versions your application needs. They help avoid a common challenge known as dependency hell.
To install the current
scikit-image you’ll need at least Python 3.6. If
your Python is older, pip will find the most recent compatible version.
# Update pip python -m pip install -U pip # Install scikit-image python -m pip install -U scikit-image
To access the full selection of demo datasets, use
To include a selection of other scientific Python packages that expand
scikit-image’s capabilities to include, e.g., parallel processing, you
can install the package
python -m pip install -U scikit-image[optional]
Please do not use the command
pip together as
overwrite critical system libraries which may require you to reinstall your
Miniconda is a bare-essentials version of the Anaconda package; you’ll need to
install packages like
scikit-image yourself. Like Anaconda, it installs
Python and provides virtual environments.
conda-forge, a conda channel maintained with the latest
Once you have your conda environment set up, you can install
with the command:
conda install scikit-image
1.4. System package managers#
Using a package manager (
apt-get, etc.) to install
or other Python packages is not your best option:
You’re likely to get an older version.
You’ll probably want to make updates and add new packages outside of the package manager, leaving you with the same kind of dependency conflicts you see when using pip without a virtual environment.
There’s an added risk because operating systems use Python, so if you make system-wide Python changes (installing as root or using sudo), you can break the operating system.
1.5. Downloading all demo datasets#
Some of the data used in our examples is hosted online and is not installed
by default by the procedures explained above. Data are downloaded once, at the
first call, but this requires an internet connection. If you prefer downloading
all the demo datasets to be able to work offline, ensure that package
is installed and then run this command:
python -c 'import skimage as ski; ski.data.download_all()'
ski.data.download_all() in your favourite interactive Python environment
(IPython, Jupyter notebook, …).
1.6. Additional help#
If you still have questions, reach out through
To suggest a change in these instructions, please open an issue on GitHub.
2. Installing scikit-image for contributors#
We are assuming that you have a default Python environment already configured on
your computer and that you intend to install
scikit-image inside of it.
We also make a few more assumptions about your system:
You have a C compiler set up.
You have a C++ compiler set up.
You are running a version of Python compatible with our system as listed in our pyproject.toml.
You’ve cloned the git repository into a directory called
scikit-image. You have set up the upstream remote to point to our repository and origin to point to your fork.
This directory contains the following files:
scikit-image ├── asv.conf.json ├── azure-pipelines.yml ├── benchmarks/ ├── CITATION.bib ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.rst ├── CONTRIBUTORS.txt ├── doc/ ├── INSTALL.rst ├── LICENSE.txt ├── MANIFEST.in ├── meson.build ├── meson.md ├── pyproject.toml ├── README.md ├── RELEASE.txt ├── requirements/ ├── requirements.txt ├── skimage/ ├── TODO.txt └── tools/
All commands below are assumed to be running from the
directory containing the files above.
2.1. Build environment setup#
Once you’ve cloned your fork of the scikit-image repository,
you should set up a Python development environment tailored for scikit-image.
You may choose the environment manager of your choice.
Here we provide instructions for two popular environment managers:
venv (pip based) and
conda (Anaconda or Miniconda).
# Create a virtualenv named ``skimage-dev`` that lives outside of the repository. # One common convention is to place it inside an ``envs`` directory under your home directory: mkdir ~/envs python -m venv ~/envs/skimage-dev # Activate it # (On Windows, please use ``skimage-dev\Scripts\activate``) source ~/envs/skimage-dev/bin/activate # Install main development and runtime dependencies pip install -r requirements.txt # Install build dependencies of scikit-image pip install -r requirements/build.txt # Build scikit-image from source spin build # Test your installation spin test # Build docs spin docs # Try the new version in IPython spin ipython
When using conda for development, we recommend adding the conda-forge channel for the most up-to-date version of many dependencies. Some dependencies we use (for testing and documentation) are not available from the default Anaconda channel. Please follow the official conda-forge installation instructions before you get started.
# Create a conda environment named ``skimage-dev`` conda create --name skimage-dev # Activate it conda activate skimage-dev # Install main development and runtime dependencies conda install -c conda-forge --file requirements/default.txt conda install -c conda-forge --file requirements/test.txt conda install -c conda-forge pre-commit # Install build dependencies of scikit-image pip install -r requirements/build.txt # Build scikit-image from source spin build # Test your installation spin test # Build docs spin docs # Try the new version spin python
For more information about building and using the
spin package, see
Test your installation for correct behavior using:
2.3. Updating the installation#
When updating your installation, it is often necessary to recompile submodules that have changed. Do so with the following commands:
# Grab the latest source git checkout main git pull upstream main # Update the installation pip install -e . -vv
2.4. Platform-specific notes#
A run-through of the compilation process for Windows is included in our setup of Azure Pipelines (a continuous integration service).
Debian and Ubuntu
Install suitable compilers:
sudo apt-get install build-essential
2.5. Full requirements list#
# Generated via tools/generate_requirements.py and pre-commit hook. # Do not edit this file; modify pyproject.toml instead. meson-python>=0.14 wheel setuptools>=67 packaging>=21 ninja Cython>=0.29.32 pythran numpy>=1.22 spin==0.6 build
# Generated via tools/generate_requirements.py and pre-commit hook. # Do not edit this file; modify pyproject.toml instead. numpy>=1.22 scipy>=1.8 networkx>=2.8 pillow>=9.0.1 imageio>=2.27 tifffile>=2022.8.12 packaging>=21 lazy_loader>=0.3
# Generated via tools/generate_requirements.py and pre-commit hook. # Do not edit this file; modify pyproject.toml instead. asv matplotlib>=3.5 numpydoc>=1.5 pooch>=1.6.0 pytest>=7.0 pytest-cov>=2.11.0 pytest-localserver pytest-faulthandler
# Generated via tools/generate_requirements.py and pre-commit hook. # Do not edit this file; modify pyproject.toml instead. sphinx>=7.2 sphinx-gallery>=0.14 numpydoc>=1.6 sphinx-copybutton pytest-runner matplotlib>=3.5 dask[array]>=2022.9.2 pandas>=1.5 seaborn>=0.11 pooch>=1.6 tifffile>=2022.8.12 myst-parser ipywidgets ipykernel plotly>=5.10 kaleido scikit-learn>=1.1 sphinx_design>=0.5 pydata-sphinx-theme>=0.14.1 PyWavelets>=1.1.1
# Generated via tools/generate_requirements.py and pre-commit hook. # Do not edit this file; modify pyproject.toml instead. pre-commit tomli; python_version < '3.11'
The full selection of demo datasets is only available with the following installed:
# Generated via tools/generate_requirements.py and pre-commit hook. # Do not edit this file; modify pyproject.toml instead. pooch>=1.6.0
You can use
scikit-image with the basic requirements listed above, but some
functionality is only available with the following installed:
Provides FITS I/O capability.
pyamgmodule is used for the fast
cg_mgmode of random walker segmentation.
daskmodule is used to speed up certain functions.
# Generated via tools/generate_requirements.py and pre-commit hook. # Do not edit this file; modify pyproject.toml instead. SimpleITK astropy>=5.0 cloudpickle>=0.2.1 dask[array]>=2021.1.0 matplotlib>=3.5 pooch>=1.6.0 pyamg PyWavelets>=1.1.1 scikit-learn>=1.1
2.6. Help with contributor installation#
See Additional help above.