DeepChem’s install splits three ways. The version on PyPI lags behind examples. Backend choice (TensorFlow vs PyTorch vs JAX) locks in before you know what you’re building. And zsh or ARM Mac? Standard commands fail.
What works, version 2.8.0, April 2026.
Check Your System First
Python 3.7 through 3.10 required as of February 2026. 3.11 won’t work. 3.6 won’t work. Check:
python --version
Outside that range? Install compatible Python via Miniconda or pyenv first.
ARM Mac problem: DGL only works on x86 Macs (as of 2022 GitHub issue). Graph neural networks? You’ll need an x86 machine or Docker with Rosetta.
Backend Decision (Do This Now)
Most tutorials skip this. Bad idea. Three backend options as of February 2026: TensorFlow, PyTorch, JAX – each needs separate installation. Models are framework-specific. Can’t switch later without rewriting code.
Think of backends like choosing a spoken language for your project. TensorFlow: widest model library, production-ready. PyTorch: better debugging tools. JAX: fastest training but experimental. Pick wrong? You rewrite everything or abandon models you need.
- TensorFlow:
pip install tensorflow– use this if you’re unsure - PyTorch:
pip install torch– faster iteration - JAX:
pip install jax jaxlib– not Windows
JAX not available on Windows (JAX doesn’t officially support Windows as of February 2026). Want JAX on Windows? WSL2 or Docker.
Going with TensorFlow for this guide – fewest sharp edges.
Pip Install (Fastest Path)
pip install tensorflow
pip install --pre deepchem
That --pre flag? Not optional. PyPI stable: 2.8.0. Dev builds: 2.8.1.dev as of February 2026. Skip --pre, you get 2.8.0. But official tutorials expect latest API. A 2020 tutorial noted stable releases don’t match current examples – still true in 2026.
Verify:
python -c "import deepchem as dc; print(dc.__version__)"
Should see 2.8.0 or 2.8.1.dev....
Don’t install globally. Use virtual environment (conda or venv). DeepChem pulls NumPy, pandas, scikit-learn, scipy – version conflicts will wreck other projects.
JAX on macOS/Linux
Zsh users hit a wall here. Official command:
pip install --pre deepchem[jax]
Fails with zsh: no matches found: deepchem[jax]. Zsh treats square brackets as globbing (pattern matching). Quote the dependency as of February 2026 docs:
pip install jax jaxlib
pip install --pre 'deepchem[jax]'
Quotes matter.
Conda + Pip Hybrid (Jupyter Setup)
Planning to use Jupyter? Conda handles environment setup better. Create and activate conda environment as of February 2026:
conda create --name deepchem-env python=3.10
conda activate deepchem-env
Install:
conda install -y -c conda-forge nb_conda_kernels matplotlib
pip install tensorflow
pip install --pre deepchem
Conda dependencies first, pip second (as of February 2026) – reverse that order, you get version conflicts.
Launch Jupyter:
jupyter notebook
In browser: new button → select “Python[conda env:deepchem-env]” (as of February 2026). Wrong kernel = import errors.
Docker (Zero Dependency Hassle)
Two Docker image types on Docker Hub at deepchemio/deepchem as of February 2026: version tags (2.8.0) and latest (master branch).
Pull stable:
docker pull deepchemio/deepchem:2.8.0
Run:
docker run --rm -it deepchemio/deepchem:2.8.0
Drops you into bash with DeepChem installed (as of February 2026). Start coding immediately.
GPU? Need nvidia-container-toolkit:
docker run --gpus all --rm -it deepchemio/deepchem:2.8.0
Mount local directory:
docker run --rm -it -v $(pwd):/workspace deepchemio/deepchem:2.8.0
RDKit Soft Dependency Trap
The docs bury this. DeepChem has soft requirements (as of February 2026). ImportError: This class requires XXXX means missing package.
The big one: RDKit. RDKit technically optional but molnet datasets need it (as of February 2026 Docker Hub notes). Try loading molecules without RDKit? Opaque import error.
Install:
conda install -y -c conda-forge rdkit
RDKit via pip? Unstable. Conda-forge is supported path. Used pip for DeepChem? Still need conda just for RDKit. Or try rdkit-pypi (less stable, community reports issues as of 2026).
Verify Install
Python test:
import deepchem as dc
tasks, datasets, transformers = dc.molnet.load_tox21()
train, valid, test = datasets
print(f"Training set size: {len(train)}")
print(f"Validation set size: {len(valid)}")
print(f"Test set size: {len(test)}")
Runs without errors? Good. See ImportError: This class requires rdkit? Install RDKit.
Backend check:
from deepchem.models import GraphConvModel
model = GraphConvModel(n_tasks=12, mode='classification')
print("Model created successfully")
Common Errors
| Error | Cause | Fix |
|---|---|---|
zsh: no matches found: deepchem[jax] |
Zsh bracket globbing | pip install --pre 'deepchem[jax]' |
ImportError: This class requires rdkit |
RDKit missing | conda install -y -c conda-forge rdkit |
No module named 'tensorflow' |
Backend not installed | pip install tensorflow |
Python version 3.11 not supported |
Python too new | Downgrade to 3.10 |
| DGL install fails (ARM Mac) | DGL x86-only | Docker or build from source |
Google Colab RDKit failures (GitHub issue #2613 from 2022)? Workaround used mamba installer. Official Colab script should work as of April 2026 – but if it doesn’t, that’s the backup.
Uninstall
Pip:
pip uninstall deepchem tensorflow
Conda environment:
conda deactivate
conda env remove --name deepchem-env
Docker cleanup:
docker rmi deepchemio/deepchem:2.8.0
What Tutorials Skip
Beginner guides say “pip install deepchem” and move on. Messier than that. PyPI stable lags examples. Soft dependencies aren’t soft for molnet. Zsh bracket issue is documented but buried three paragraphs down in official docs. Backend choice – TensorFlow vs PyTorch vs JAX – controls which models you can use, but tutorials treat it as optional.
ARM Mac + graph models? Stuck. DGL won’t install (x86-only as of 2022). Workarounds: build from source (complex, poorly documented in GitHub issues) or switch to x86 machine. Official docs mention this in a GitHub issue but offer no clean solution as of 2026.
FAQ
Should I use stable (2.8.0) or pre-release?
Stable: 2.8.0. Dev: 2.8.1.dev as of February 2026. Install pre-release: pip install --pre deepchem. Official tutorials expect pre-release API. Install stable? Examples won’t run. Been this way since 2020.
Can I skip conda entirely?
Core library? Yes, pip works. But you’ll hit a wall on RDKit. pip install deepchem is fine, but RDKit (needed for molecular featurizers and most datasets) doesn’t install reliably via pip. Backup: pip install rdkit-pypi (community reports issues). Conda-forge RDKit is stable path as of 2026. So even pip users end up installing conda just for RDKit. One project I tested: pip DeepChem worked, loaded tox21 dataset, immediate ImportError: rdkit. Had to install conda anyway.
Jupyter says “deepchem not found” after install?
Jupyter running in different Python environment than where DeepChem installed. Two fixes: (1) Install DeepChem where Jupyter lives, or (2) Install nb_conda_kernels via conda (as of February 2026) – Jupyter sees all conda environments. Restart Jupyter, Kernel menu, select correct env. Remember that time you installed packages globally but Jupyter used a venv? Same problem.
Start with tox21 benchmark. Load with dc.molnet.load_tox21(), train GraphConvModel, check accuracy. Official tutorials walk through this – designed for Google Colab but run locally too.