Installation#

Note

We recommend installing into a virtual environment, which is an isolated Python environment that allows you to install packages without admin privileges.

Install the official release#

pydicom, being a Python library, requires Python. If you’re not sure whether or not your version of Python is supported, check this table.

Install using pip#

pydicom is available on PyPI, the official third-party Python software repository. The simplest way to install the latest version from PyPI is using pip with the command:

python -m pip install -U pydicom

You can also perform an offline installation by downloading and installing one of the release *.whl files. For example, with the v3.0 release:

pip install pydicom-3.0.0-py3-none-any.whl

Install using conda#

pydicom is also available for conda at conda-forge:

conda install -c conda-forge pydicom

Additional type hints#

The default pydicom type hinting doesn’t cover standard element keywords accessed through Dataset:

# foo.py
from pydicom import Dataset

ds = Dataset()
ds.PatientName = 1234
$ mypy foo.py
Success: no issues found in 1 source file

To add extra type hints for these attributes you can install the types-pydicom package:

python -m pip install -U types-pydicom
$ mypy foo.py
foo.py:5: error: Incompatible types in assignment (expression has type "int", variable has type "str | PersonName | None")  [assignment]
Found 1 error in 1 file (checked 1 source file)

Install the optional libraries#

If you’re going to be manipulating pixel data then NumPy is required.

Using pip:

python -m pip install -U numpy

Through conda:

conda install numpy

To decode JPEG compressed pixel data one or more additional libraries will need to be installed. See this page for a list of which library is needed to handle a given JPEG format, as specified by the dataset’s (0002,0010) Transfer Syntax UID value.

Installing Pillow#

Pillow is a popular Python imaging library that can handle the decompression of some JPEG and JPEG 2000 images.

Using pip; you may need to make sure that the libjpeg (for JPEG) and openjpeg (for JPEG 2000) libraries are installed beforehand:

python -m pip install -U pillow

Through conda:

conda install -c conda-forge openjpeg jpeg
conda install pillow

Installing pyjpegls#

pyjpegls is a Python interface to the CharLS C++ library and can decompress JPEG-LS images. It is a fork of CharPyLS created to provide compatibility with the latest Python versions.

Using pip:

python -m pip install -U pyjpegls

Through conda:

conda install cython
python -m pip install git+https://github.com/pydicom/pyjpegls

Installing GDCM#

GDCM is a C++ library for working with DICOM datasets that can decompress JPEG, JPEG-LS and JPEG 2000 images.

The wheels on PyPI are built by the python-gdcm project for current versions of Python on Windows, MacOS and Linux, and can be installed using pip:

python -m pip install -U python-gdcm

The wheels available through conda-forge tend to be older versions and not as well supported. They’re available on conda using:

conda install gdcm -c conda-forge

Installing pylibjpeg#

pylibjpeg is a Python framework for decompressing JPEG, JPEG-LS, JPEG 2000 images and compressing or decompressing RLE images provided a suitable plugin is installed.

Using pip:

python -m pip install -U pylibjpeg[all]

Install the development version#

To install a snapshot of the latest code (the main branch) from GitHub:

pip install git+https://github.com/pydicom/pydicom

The main branch is under active development and while it is usually stable, it may have undocumented changes or bugs.

If you want to keep up-to-date with the latest code, make sure you have Git installed and then clone the main branch (this will create a pydicom directory in your current directory):

git clone --depth=1 https://github.com/pydicom/pydicom.git

Then install using pip in editable (-e) mode:

pip install -e pydicom/

When you want to update your copy of the source code, run git pull from within the pydicom directory and Git will download and apply any changes.