1. 安装 scikit-image#

1.1. 支持的平台#

  • x86 处理器上的 Windows 64 位

  • x86 和 ARM (M1 等) 处理器上的 macOS

  • x86 和 ARM 处理器上的 Linux 64 位

虽然我们没有正式支持其他平台,您仍然可以尝试从源代码构建

1.2. 版本检查#

要查看是否已安装 scikit-image 或检查安装是否成功,请在 Python shell 或 Jupyter notebook 中运行以下命令

import skimage as ski
print(ski.__version__)

或者,从命令行运行

python -c "import skimage; print(skimage.__version__)"

(如果 python 不成功,请尝试 python3。)

如果安装了 scikit-image,您将看到版本号;否则,您将看到错误消息。

1.3. 通过 pip 和 conda 安装#

1.3.1. pip#

pip 安装的先决条件:您必须能够在命令行中使用 pip 来安装软件包。

我们强烈建议使用 虚拟环境。虚拟环境创建一个干净的 Python 环境,它不会干扰现有的系统安装,可以轻松删除,并且只包含您的应用程序需要的软件包版本。

要安装当前的 scikit-image,您至少需要 Python 3.10。如果您的 Python 版本较旧,pip 将找到最新的兼容版本。

# Update pip
python -m pip install -U pip

# Install scikit-image
python -m pip install -U scikit-image

需要一些额外的依赖项才能访问 skimage.data 中的所有示例数据集。使用以下命令安装它们

python -m pip install -U scikit-image[data]

要安装可选的科学 Python 软件包,以扩展 scikit-image 的功能,例如包括并行处理,请使用

python -m pip install -U scikit-image[optional]

警告

不要一起使用命令 sudopip,因为 pip 可能会覆盖关键的系统库。

1.3.2. conda#

我们建议使用 miniforge,这是一个利用 conda-forge 的最小发行版。它安装 Python 并提供虚拟环境。

设置好 conda 环境后,使用以下命令安装 scikit-image

conda install scikit-image

1.4. 系统包管理器#

使用包管理器(aptdnf 等)来安装 scikit-image 或其他 Python 软件包并不是您的最佳选择,因为您很可能会获得较旧的版本。这也使得安装包管理器未提供的其他 Python 软件包变得更加困难。

1.5. 下载所有演示数据集#

我们的一些示例图像(在 skimage.data 中)托管在网上,并且默认情况下未安装。这些图像在首次访问时下载。如果您希望下载所有演示数据集,以便可以离线访问它们,请确保安装了 pooch,然后运行

python -c 'import skimage as ski; ski.data.download_all()'

1.6. 其他帮助#

如果您仍有疑问,请通过以下方式联系我们

要建议更改这些说明,请在 GitHub 上打开一个 issue

2. 为贡献者安装 scikit-image#

您的系统需要

  • C 编译器,

  • C++ 编译器,以及

  • scikit-image 支持的 Python 版本(请参阅 pyproject.toml)。

首先,在 GitHub 上 fork scikit-image 存储库。然后,在本地克隆您的 fork,并设置一个 upstream 远程以指向原始的 scikit-image 存储库

注意

我们在下面使用 [email protected];如果您没有设置 SSH 密钥,请改用 https://github.com

git clone [email protected]:YOURUSERNAME/scikit-image
cd scikit-image
git remote add upstream [email protected]:scikit-image/scikit-image

以下所有命令都在克隆的 scikit-image 目录中运行。

2.1. 构建环境设置#

设置一个为 scikit-image 量身定制的 Python 开发环境。在这里,我们提供了两种流行的环境管理器 venv (pip) 和 conda (miniforge) 的说明。

2.1.1. venv#

# Create a virtualenv named ``skimage-dev`` that lives outside of the repository.
# One common convention is to place it inside an ``envs`` directory under your home directory:
mkdir ~/envs
python -m venv ~/envs/skimage-dev

# Activate it
# (On Windows, use ``skimage-dev\Scripts\activate``)
source ~/envs/skimage-dev/bin/activate

# Install development dependencies
pip install -r requirements.txt
pip install -r requirements/build.txt

# Install scikit-image in editable mode. In editable mode,
# scikit-image will be recompiled, as necessary, on import.
spin install -v

提示

上面的命令将 scikit-image 安装到您的环境中,使其可以被 IDE、IPython 等访问。这并非绝对必要;您也可以使用以下命令构建

spin build

在这种情况下,该库不会被安装,但可以通过 spin 命令访问,例如 spin testspin ipythonspin run 等。

2.1.2. conda#

我们建议使用 miniforge 安装 conda,它是 Anaconda 的替代方案,没有许可费用。

安装 miniforge 后

# Create a conda environment named ``skimage-dev``
conda create --name skimage-dev

# Activate it
conda activate skimage-dev

# Install development dependencies
conda install -c conda-forge --file requirements/default.txt
conda install -c conda-forge --file requirements/test.txt
conda install -c conda-forge pre-commit ipython
conda install -c conda-forge --file requirements/build.txt

# Install scikit-image in editable mode. In editable mode,
# scikit-image will be recompiled, as necessary, on import.
spin install -v

提示

上面的命令将 scikit-image 安装到您的环境中,使其可以被 IDE、IPython 等访问。这并非绝对必要;您也可以使用以下命令构建

spin build

在这种情况下,该库不会被安装,但可以通过 spin 命令访问,例如 spin testspin ipythonspin run 等。

2.2. 测试#

运行完整的测试套件

spin test

或运行一部分测试

# Run tests in a given file
spin test skimage/morphology/tests/test_gray.py

# Run tests in a given directory
spin test skimage/morphology

# Run tests matching a given expression
spin test -- -k local_maxima

2.3. 添加功能分支#

在贡献新功能时,请通过功能分支执行此操作。

首先,获取最新的源代码

git switch main
git pull upstream main

创建您的功能分支

git switch --create my-feature-name

使用可编辑安装,scikit-image 会在必要时重建自身。如果您是手动构建,请使用以下命令重建

.. code-block:: sh

spin build

重复的增量构建通常可以正常工作,但如果您发现构建问题,请使用以下命令从头开始重建

spin build --clean

2.4. 平台特定说明#

Windows

在 Windows 上构建 scikit-image 是我们持续集成测试的一部分;步骤显示在此 Azure Pipeline 中。

Debian 和 Ubuntu

在库编译之前安装合适的编译器

sudo apt-get install build-essential

2.5. 完整的要求列表#

构建要求

# Generated via tools/generate_requirements.py and pre-commit hook.
# Do not edit this file; modify pyproject.toml instead.
meson-python>=0.16
setuptools>=68
ninja>=1.11.1.1
Cython>=3.0.8
pythran>=0.16
numpy>=2.0
spin==0.13
build>=1.2.1

运行时要求

# Generated via tools/generate_requirements.py and pre-commit hook.
# Do not edit this file; modify pyproject.toml instead.
numpy>=1.24
scipy>=1.11.2
networkx>=3.0
pillow>=10.1
imageio>=2.33,!=2.35.0
tifffile>=2022.8.12
packaging>=21
lazy-loader>=0.4

测试要求

# Generated via tools/generate_requirements.py and pre-commit hook.
# Do not edit this file; modify pyproject.toml instead.
asv
numpydoc>=1.7
pooch>=1.6.0
pytest>=7.0
pytest-cov>=2.11.0
pytest-localserver
pytest-faulthandler
pytest-doctestplus

文档要求

# Generated via tools/generate_requirements.py and pre-commit hook.
# Do not edit this file; modify pyproject.toml instead.
sphinx>=8.0
sphinx-gallery[parallel]>=0.18
numpydoc>=1.7
sphinx-copybutton
matplotlib>=3.7
dask[array]>=2022.9.2
pandas>=2.0
seaborn>=0.11
pooch>=1.6
tifffile>=2022.8.12
myst-parser
intersphinx-registry>=0.2411.14
ipywidgets
ipykernel
plotly>=5.20
kaleido==0.2.1
scikit-learn>=1.2
sphinx_design>=0.5
pydata-sphinx-theme>=0.16
PyWavelets>=1.6
pytest-doctestplus

开发人员要求

# Generated via tools/generate_requirements.py and pre-commit hook.
# Do not edit this file; modify pyproject.toml instead.
pre-commit
ipython
tomli; python_version < '3.11'

数据要求

只有在安装了以下内容后,才能使用完整的演示数据集

# Generated via tools/generate_requirements.py and pre-commit hook.
# Do not edit this file; modify pyproject.toml instead.
pooch>=1.6.0

可选要求

您可以使用上面列出的基本要求来使用 scikit-image,但某些功能只有在安装了以下内容后才可用

  • Matplotlib 用于各种功能,例如,用于绘制、分割、读取图像。

  • Dask dask 模块用于并行化某些功能。

在极少数情况下,您可能还需要

  • PyAMG pyamg 模块用于随机游走者分割的快速 cg_mg 模式。

  • Astropy 提供 FITS I/O 功能。

  • SimpleITK 可选的 I/O 插件,提供各种 格式,包括生物医学成像中使用的特殊格式。

# Generated via tools/generate_requirements.py and pre-commit hook.
# Do not edit this file; modify pyproject.toml instead.
SimpleITK
astropy>=5.0
cloudpickle>=0.2.1
dask[array]>=2021.1.0,!=2024.8.0
matplotlib>=3.7
pooch>=1.6.0
pyamg>=5.2
PyWavelets>=1.6
scikit-learn>=1.2

2.6. 有关贡献者安装的帮助#

请参阅上面的其他帮助