Meson 和 distutils 的处理方式#

旧工作流程(基于 numpy.distutils)

runtests.py 文件在提交 0f73f92255253ec5dff2de5ca45d8d3bdda03f92 [^1^_] 中被删除。

  1. python runtests.py

  2. python setup.py build_ext -i + export PYTHONPATH=/home/username/path/to/scipy/reporoot (然后编辑 SciPy 中的纯 Python 代码并使用 python some_script.py 运行)。

  3. python setup.py develop - 这与 (2) 类似,只是就地构建在环境中永久可见。

  4. python setup.py bdist_wheel + pip install dist/scipy*.whl - 在当前环境中构建 wheel(即使用已安装的 numpy 等)并安装它。

  5. pip install . - 在隔离的构建环境中,针对 pyproject.toml 中的依赖项构建 wheel 并安装它。*注意:请注意,这通常不是开发安装的正确命令 - 通常你想要使用 (4) 或* pip install . -v --no-build-isolation

新工作流程(基于 Meson 和 meson-python)

  1. python dev.py

  2. pip install -e . --no-build-isolation (请参阅 meson-python 文档)

  3. 与 (2) 相同

  4. python -m build --no-isolation + pip install dist/scipy*.whl - 请参阅 pypa/build

  5. pip install .

[^1^_]: [GitHub 上的提交 0f73f92255253ec5dff2de5ca45d8d3bdda03f92](scipy/scipy)。