1. 安装 scikit-image#

您应该如何安装 scikit-image 取决于您的需求和技能

1.1. 支持的平台#

  • 基于 x86 处理器的 Windows 64 位

  • 基于 x86 和 M(ARM)处理器的 macOS

  • 基于 x86 处理器的 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 安装#

这些仅安装 scikit-image 及其依赖项;pip 具有一个选项可以包含相关软件包。

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

要访问完整的演示数据集选择,请使用 scikit-image[data]。要包含一些其他科学 Python 软件包,这些软件包可以扩展 scikit-image 的功能以包括例如并行处理,您可以安装软件包 scikit-image[optional]

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

警告

请不要将命令 sudopip 放在一起使用,因为 pip 可能会覆盖关键的系统库,这可能需要您重新安装操作系统。

1.3.2. conda#

Miniconda 是 Anaconda 软件包的基本版本;您需要自己安装诸如 scikit-image 之类的软件包。与 Anaconda 一样,它安装 Python 并提供虚拟环境。

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

conda install scikit-image

1.4. 系统软件包管理器#

使用软件包管理器(yumapt-get 等)安装 scikit-image 或其他 Python 软件包并不是您的最佳选择

  • 您可能会获得旧版本。

  • 您可能希望在软件包管理器之外进行更新和添加新软件包,从而导致与在没有虚拟环境的情况下使用 pip 时看到的相同类型的依赖冲突。

  • 存在额外的风险,因为操作系统使用 Python,因此,如果您对系统范围内的 Python 进行更改(以 root 身份安装或使用 sudo),则可能会破坏操作系统。

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

我们示例中使用的一些数据托管在网上,并且上面解释的过程默认情况下不会安装。数据下载一次,在第一次调用时,但这需要网络连接。如果您希望下载所有演示数据集以能够离线工作,请确保已安装软件包 pooch,然后运行此命令

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

或在您喜欢的交互式 Python 环境(IPython、Jupyter notebook 等)中调用 ski.data.download_all()

1.6. 其他帮助#

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

要建议更改这些说明,请 在 GitHub 上提交问题

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

我们假设您已经在计算机上配置了默认的 Python 环境,并且打算在其中安装 scikit-image

我们还对您的系统做了一些其他假设

  • 您已设置了 C 编译器。

  • 您已设置了 C++ 编译器。

  • 您正在运行与我们的系统兼容的 Python 版本,如我们的 pyproject.toml 中所列。

  • 您已将 git 存储库克隆到名为 scikit-image 的目录中。您已将 upstream 远程指向我们的存储库,并将 origin 指向您的 fork。

此目录包含以下文件

scikit-image
├── asv.conf.json
├── azure-pipelines.yml
├── benchmarks/
├── CITATION.bib
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.rst
├── CONTRIBUTORS.txt
├── doc/
├── INSTALL.rst
├── LICENSE.txt
├── MANIFEST.in
├── meson.build
├── meson.md
├── pyproject.toml
├── README.md
├── RELEASE.txt
├── requirements/
├── requirements.txt
├── skimage/
├── TODO.txt
└── tools/

假设以下所有命令都从包含上述文件的 scikit-image 目录中运行。

2.1. 构建环境设置#

克隆 scikit-image 存储库的分支后,您应该为 scikit-image 设置一个定制的 Python 开发环境。您可以选择您喜欢的环境管理器。这里我们提供了两种流行的环境管理器的说明:venv(基于 pip)和 conda(Anaconda 或 Miniconda)。

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, please use ``skimage-dev\Scripts\activate``)
source ~/envs/skimage-dev/bin/activate
# Install main development and runtime dependencies
pip install -r requirements.txt
# Install build dependencies of scikit-image
pip install -r requirements/build.txt
# Build scikit-image from source
spin build
# The new version lives under `${PWD}/build-install/.../site-packages`.
# Test your installation
spin test
# Build docs
spin docs
# Try the new version in IPython
spin ipython

2.1.2. conda#

在开发中使用 conda 时,我们建议添加 conda-forge 频道以获取许多依赖项的最新版本。我们使用的一些依赖项(用于测试和文档)在默认的 Anaconda 频道中不可用。在开始之前,请按照官方的 conda-forge 安装说明 操作。

# Create a conda environment named ``skimage-dev``
conda create --name skimage-dev
# Activate it
conda activate skimage-dev
# Install main development and runtime 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
# Install build dependencies of scikit-image
pip install -r requirements/build.txt
# Build scikit-image from source
spin build
# The new version lives under `${PWD}/build-install/.../site-packages`.
# Test your installation
spin test
# Build docs
spin docs
# Try the new version in IPython
spin ipython

有关构建和使用 spin 软件包的更多信息,请参阅 meson.md

2.2. 测试#

使用以下命令测试您的安装是否正常工作

pytest skimage

2.3. 更新安装#

在更新安装之前,您通常需要获取最新的源代码

git checkout main
git pull upstream main

并且您可能希望从此处创建一个功能分支。在您处理此分支时,您可以使用以下命令重新构建 scikit-image

spin build

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

spin build --clean

2.4. 特定于平台的说明#

Windows

Windows 编译过程的完整步骤包含在我们的 Azure Pipelines 设置(持续集成服务)中。

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.15
wheel
setuptools>=67
packaging>=21
ninja
Cython>=3.0.4
pythran
numpy>=2.0.0rc1
spin==0.8
build

运行时需求

# Generated via tools/generate_requirements.py and pre-commit hook.
# Do not edit this file; modify pyproject.toml instead.
numpy>=1.23
scipy>=1.9
networkx>=2.8
pillow>=9.1
imageio>=2.33
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>=7.3
sphinx-gallery>=0.14
numpydoc>=1.7
sphinx-copybutton
pytest-runner
matplotlib>=3.6
dask[array]>=2022.9.2
pandas>=1.5
seaborn>=0.11
pooch>=1.6
tifffile>=2022.8.12
myst-parser
ipywidgets
ipykernel
plotly>=5.10
kaleido
scikit-learn>=1.1
sphinx_design>=0.5
pydata-sphinx-theme>=0.15.2
PyWavelets>=1.1.1
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,但某些功能只有在安装以下内容后才能使用

  • SimpleITK

    提供各种 格式 的可选 I/O 插件,包括医学成像中使用的专用格式。

  • Astropy

    提供 FITS I/O 功能。

  • PyAMG

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

  • Dask

    dask 模块用于加速某些函数。

  • Matplotlib

    用于各种函数,例如绘图、分割、读取图像。

# 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
matplotlib>=3.6
pooch>=1.6.0
pyamg
PyWavelets>=1.1.1
scikit-learn>=1.1

2.6. 贡献者安装帮助#

请参阅上面的 其他帮助