If you do not have a working installation of Python 3.6 (or later), consider installing Miniconda (see Installing Miniconda). Then run:

conda install -c conda-forge scanpy python-igraph leidenalg

Pull Scanpy from PyPI (consider using pip3 to access Python 3):

pip install scanpy

PyPI only

If you prefer to exclusively use PyPI run:

pip install 'scanpy[leiden]'

The extra [leiden] installs two packages that are needed for popular parts of scanpy but aren’t requirements: python-igraph [Csardi06] and leiden [Traag18].

Development Version

To work with the latest version on GitHub: clone the repository and cd into its root directory.

gh repo clone theislab/scanpy
cd scanpy

If you are using pip>=21.3, an editable install can be made:

pip install -e '.[dev,doc,test]'

For older versions of pip, flit can be used directly. To install using symbolic links (stay up to date with your cloned version after you update with git pull) call:

flit install -s --deps=develop  # from an activated venv or conda env
# or
flit install -s --deps=develop --python path/to/venv/bin/python

If you want to let conda handle the installations of dependencies, do:

pip install beni
beni pyproject.toml > environment.yml
conda env create -f environment.yml
conda activate scanpy
flit install -s --deps=develop

On Windows, you might have to use flit install --pth-file if you are not able to give yourself the create symbolic links privilege.

For instructions on how to work with the code, see the contributing guide.


If you’re using Docker, you can use e.g. the image gcfntnu/scanpy from Docker Hub.


If you get a Permission denied error, never use sudo pip. Instead, use virtual environments or:

pip install --user scanpy

On MacOS, if not using conda, you might need to install the C core of igraph via homebrew first

  • brew install igraph

  • If python-igraph still fails to install, see the question on compiling igraph. Alternatively consider installing gcc via brew install gcc --without-multilib and exporting the required variables:

    export CC="/usr/local/Cellar/gcc/X.x.x/bin/gcc-X"
    export CXX="/usr/local/Cellar/gcc/X.x.x/bin/gcc-X"

    where X and x refers to the version of gcc; in my case, the path reads /usr/local/Cellar/gcc/6.3.0_1/bin/gcc-6.

On Windows, there also often problems installing compiled packages such as igraph, but you can find precompiled packages on Christoph Gohlke’s unofficial binaries. Download those and install them using pip install ./path/to/file.whl

Installing Miniconda

After downloading Miniconda, in a unix shell (Linux, Mac), run

chmod +x

and accept all suggestions. Either reopen a new terminal or source ~/.bashrc on Linux/ source ~/.bash_profile on Mac. The whole process takes just a couple of minutes.