安装指南#
目录#
MONAI 的核心功能使用 Python 3 (>= 3.10) 编写,仅需要 Numpy 和 Pytorch。
该软件包目前通过 Github 作为主要源代码仓库进行分发,也可通过 Python 包索引 (PyPI) 获取。预构建的 Docker 镜像可在 DockerHub 上获得。
要安装可选功能(例如使用 Nibabel 处理 NIfTI 文件,或使用 Pytorch Ignite 构建工作流),请遵循相关说明。
下面的安装命令通常会安装 CPU 版本的 PyTorch。若要安装支持 GPU 的 PyTorch,请执行以下操作:
安装最新的 NVIDIA 驱动程序。
查看 PyTorch 官方指南以获取推荐的 CUDA 版本。对于 Pip 包,用户需要手动下载 CUDA,将其安装在系统上,并确保正确设置了 CUDA_PATH。
继续按照指南安装 PyTorch。
使用下面描述的方法之一安装 MONAI。
通过 PyPI 安装#
里程碑版本#
要安装 当前里程碑版本:
pip install monai
每周预览版#
要安装 每周预览版:
pip install monai-weekly
每周构建版本会在每周日发布到 PyPI,并带有预发布版本号 dev[%y%U]。若要报告每周预览版中的任何问题,请务必包含版本信息。
python -c "import monai; print(monai.__version__)"
系统中 monai 和 monai-weekly 软件包共存可能会导致命名空间冲突和 ImportError。这通常是由于在未先卸载现有版本的情况下同时运行 pip install monai 和 pip install monai-weekly 造成的。要解决此问题,请卸载这两个软件包,然后重试安装。
卸载软件包#
使用 pip install 安装的软件包可以通过以下命令移除:
pip uninstall -y monai
pip uninstall -y monai-weekly
通过 conda-forge 安装#
要安装 当前里程碑版本:
conda install -c conda-forge monai
通过 GitHub 安装#
(如果您已使用 pip install monai 安装了 PyPI 发布版本,请在执行本节中的命令前运行 pip uninstall monai。因为 pip 默认优先使用里程碑版本。)
里程碑版本通常每隔几个月规划并发布一次。由于代码库处于活跃开发中,您可能希望从 GitHub 安装 MONAI 以获取最新功能:
选项 1(作为系统模块的一部分):#
pip install git+https://github.com/Project-MONAI/MONAI
或者,使用 MONAI C++/CUDA 扩展进行构建:
BUILD_MONAI=1 pip install git+https://github.com/Project-MONAI/MONAI
若要构建扩展,如果系统环境中已经安装了 PyTorch,建议使用 --no-build-isolation:
BUILD_MONAI=1 pip install --no-build-isolation git+https://github.com/Project-MONAI/MONAI
此命令将从 GitHub 下载并安装当前 MONAI 的 dev 分支。
此文档网站默认显示最新版本的信息。
选项 2(可编辑安装):#
要安装可编辑版本的 MONAI,建议直接克隆代码库:
git clone https://github.com/Project-MONAI/MONAI.git
此命令将在当前目录中创建一个 MONAI/ 文件夹。您可以通过运行以下命令进行安装:
cd MONAI/
pip install -e .
或者,使用 MONAI C++/CUDA 扩展进行构建并安装:
cd MONAI/
BUILD_MONAI=1 pip install -e .
# for MacOS
BUILD_MONAI=1 CC=clang CXX=clang++ pip install -e .
要卸载该软件包,请运行:
cd MONAI/
pip uninstall -y monai
# to further clean up the MONAI/ folder (Bash script)
./runtests.sh --clean
或者,只需将克隆源代码的根目录(例如 /workspace/Documents/MONAI)添加到您的 $PYTHONPATH,代码库即可使用(但不具备 MONAI C++/CUDA 扩展的附加功能)。
C++/CUDA 扩展功能目前处于实验阶段,预编译版本可通过 最近的 docker 镜像发布获得。从源代码构建扩展可能需要 Ninja 和 CUDA Toolkit。默认情况下,如果
torch.cuda.is_available()为真,则会构建 CUDA 扩展。可以通过设置FORCE_CUDA=1环境变量来强制构建。
验证安装#
您可以通过以下方式验证安装:
python -c "import monai; monai.config.print_config()"
如果安装成功,该命令将打印出 MONAI 版本信息,这确认 MONAI 的核心模块已准备就绪。
MONAI 版本字符串#
MONAI 版本字符串显示了您本地安装的当前状态。例如:
MONAI version: 0.1.0+144.g52c763d.dirty
0.1.0表示您的安装基于0.1.0里程碑版本。+144表示您的安装比里程碑版本超前了 144 次 git 提交。g52c763d表示您的安装对应于 git 提交哈希52c763d。dirty表示您在本地修改了代码库,代码库与52c763d不一致。
通过 DockerHub 安装#
请确保您已为 Linux 发行版安装了 NVIDIA 驱动程序和 Docker 19.03+。注意,您不需要在主机上安装 CUDA 工具包,但必须安装驱动程序。请在 nvidia-docker 上查找更多信息。
假设您已安装 Nvidia 驱动程序和 Docker 19.03+,运行以下命令将下载并启动一个包含最新版 MONAI 的容器。镜像中包含了来自 GitHub 的最新版 MONAI dev 分支。
docker run --gpus all --rm -ti --ipc=host projectmonai/monai:latest
您也可以通过指定镜像标签来运行里程碑版本的 docker 镜像,例如:
docker run --gpus all --rm -ti --ipc=host projectmonai/monai:0.1.0
安装推荐依赖项#
默认情况下,安装步骤仅会下载并安装 MONAI 的最小需求。可以使用 extras 语法 安装可选依赖项以支持附加功能。
例如,要安装支持 Nibabel 和 Scikit-image 的 MONAI:
git clone https://github.com/Project-MONAI/MONAI.git
cd MONAI/
pip install -e '.[nibabel,skimage]'
或者,要安装所有可选依赖项:
git clone https://github.com/Project-MONAI/MONAI.git
cd MONAI/
pip install -e ".[all]"
要根据 MONAI 开发环境设置使用 pip 安装所有可选依赖项:
git clone https://github.com/Project-MONAI/MONAI.git
cd MONAI/
pip install -r requirements-dev.txt
要根据 MONAI 开发环境设置(environment-dev.yml)使用 conda 安装所有可选依赖项(这将同时安装 PyTorch 以及 pytorch-cuda,关于安装 PyTorch 的更多详细信息,请参考 https://pytorch.ac.cn/get-started/locally/#start-locally):
git clone https://github.com/Project-MONAI/MONAI.git
cd MONAI/
conda create -n <name> python=<ver> # eg 3.10
conda env update -n <name> -f environment-dev.yml
自 MONAI v0.2.0 起,pip install 'monai[nibabel]' 等 extras 语法可通过 PyPI 使用。
选项包括:
[nibabel, skimage, scipy, pillow, tensorboard, gdown, ignite, torchvision, itk, tqdm, lmdb, psutil, cucim, openslide, pandas, einops, transformers, mlflow, clearml, matplotlib, tensorboardX, tifffile, imagecodecs, pyyaml, fire, jsonschema, ninja, pynrrd, pydicom, h5py, nni, optuna, onnx, onnxruntime, zarr, lpips, pynvml, huggingface_hub]
分别对应 nibabel, scikit-image, scipy, pillow, tensorboard, gdown, pytorch-ignite, torchvision, itk, tqdm, lmdb, psutil, cucim, openslide-python, pandas, einops, transformers, mlflow, clearml, matplotlib, tensorboardX, tifffile, imagecodecs, pyyaml, fire, jsonschema, ninja, pynrrd, pydicom, h5py, nni, optuna, onnx, onnxruntime, zarr, lpips, nvidia-ml-py, huggingface_hub 和 pyamg。
pip install 'monai[all]'会安装所有可选依赖项。