There are two ways to install XCP-D:

Container Technologies

XCP-D is ideally run via a Docker or Singularity container. If you are running XCP-D locally, we suggest Docker. However, for security reasons, many HPCs do not allow Docker containers, but do allow Singularity containers. The improved security for multi-tenant systems comes at the price of some limitations and extra steps necessary for execution.

Docker Installation

For every new version of xcp_d that is released, a corresponding Docker image is generated.

In order to run xcp_d via Docker images, the Docker Engine must be installed.

If you have used xcp_d via Docker in the past, you might need to pull down a more recent version of the image:

$ docker pull pennlinc/xcp_d:<latest-version>

The image can also be found here:

xcp_d can be run interacting directly with the Docker Engine via the docker run command, or through a lightweight wrapper that was created for convenience.

Singularity Installation

Singularity version >= 2.5: If the version of Singularity installed on your HPC system is modern enough, you can create a Singularity image directly on the system using the following command:

$ singularity build xcp_d-<version>.simg docker://pennlinc/xcp_d:<version>

where <version> should be replaced with the desired version of xcp-d that you want to download.

Manually Prepared Environment (Python 3.8+)


This method is not recommended! Please use container alternatives in Running xcp_d via Docker containers, and Running xcp_d via Singularity containers.

xcp_d requires some External Dependencies. These tools must be installed and their binaries available in the system’s $PATH.

On a functional Python 3.8 (or above) environment with pip installed, xcp_d can be installed using the habitual command

$ pip install git+

Check your installation with the --version argument

$ xcp_d --version

External Dependencies

XCP-D is written using Python 3.8 (or above), is based on nipype, and requires some other neuroimaging software tools that are not handled by the Python’s packaging system (Pypi) used to deploy the xcp_d package: