贡献者快速入门指南#

从 GitHub 获取源代码之后,开始贡献需要三个步骤

  1. 设置开发环境

    使用 mamba 或其他虚拟环境管理工具,可以确保 SciPy 的开发版本不会干扰您机器上任何其他本地安装的 SciPy。

  2. 构建 SciPy

    SciPy 使用编译代码来提高速度,这意味着您可能需要额外的依赖项才能完成此步骤,具体取决于您的系统 - 请参阅从源代码构建

  3. 执行开发任务

    这些任务可以包括您想对源代码进行的任何更改,运行测试,构建文档,运行基准测试等。

基本工作流程#

注意

我们强烈建议使用用户激活的环境设置,例如 conda 或虚拟环境。

由于 SciPy 包含用 C、C++ 和 Fortran 编写的部分,需要在使用前进行编译,请确保您已安装必要的编译器和 Python 开发头文件。如果您使用的是 mamba,这些将自动安装。如果您使用的是 pip,请检查您可能需要的 系统级依赖项

首先,将 GitHub 上的 SciPy 主仓库复制到您的帐户,然后通过以下方式创建您的本地仓库:

git clone git@github.com:YOURUSERNAME/scipy.git scipy
cd scipy
git submodule update --init
git remote add upstream https://github.com/scipy/scipy.git

接下来,设置您的开发环境。**在安装了** 系统级依赖项 **后**,从您的 SciPy 克隆的基目录在终端执行以下命令:

# Create an environment with all development dependencies
mamba env create -f environment.yml  # works with `conda` too
# Activate the environment
mamba activate scipy-dev
# Create the virtual environment
python -m venv $HOME/.venvs/scipy-dev
# Activate the environment
source $HOME/.venvs/scipy-dev/bin/activate
# Install python-level dependencies
python -m pip install numpy pytest cython pythran pybind11 meson ninja pydevtool rich-click hypothesis

您的命令提示符现在将列出您的新环境的名称,如下所示:(scipy-dev)$

最后,构建 SciPy 以进行开发并使用以下命令运行测试套件:

python dev.py test  # this will always (re)build as needed first

请注意,这将花费几分钟(默认情况下,一些非常慢的测试被禁用),因此您可能只想测试您将要处理的 SciPy 部分。有关如何执行此操作的详细信息,请参阅 开发工作流程 中的更完整的设置演练,或 python dev.py test --help

其他工作流程#

这只是众多设置开发环境的可能方法之一。有关更详细的说明,请参阅 SciPy 贡献者指南

注意

如果您在从源代码构建 SciPy 或设置本地开发环境时遇到问题,可以尝试使用 GitHub Codespaces 构建 SciPy。它允许您直接在浏览器中创建正确的开发环境,减少了安装本地开发环境和处理不兼容依赖项的需要。

如果您拥有良好的互联网连接并且想要一个临时的设置,通常在 Codespaces 环境中处理 SciPy 会更快。有关如何开始使用 Codespaces 的文档,请参阅 Codespaces 文档。在为 scipy/scipy 仓库创建 Codespaces 时,默认的 2 核机器类型可以正常工作;4 核将构建并运行得更快(但当然会以减少您的免费使用时间为代价)。Codespaces 启动后,您可以运行 conda activate scipy-dev,您的开发环境将完全设置好 - 然后您可以按照 SciPy 文档的相关部分进行构建、测试、开发、编写文档并为 SciPy 做出贡献。

另一个选择是使用 Gitpod。我们不再维护此解决方案,但您可以在我们之前版本的 文档 中找到一些信息。