从源代码构建#
在本地计算机上构建可让你完全控制构建选项。如果您是熟悉使用命令行的 MacOS 或 Linux 用户,则可以通过按照以下说明在本地构建 NumPy。
注意
如果您想出于开发目的构建 NumPy,请参阅 设置和使用开发环境 以获取更多信息。
先决条件#
构建 NumPy 需要安装以下软件
Python 3.9.x 或更高版本
请注意,还需要安装 Python 开发头文件,例如,在 Debian/Ubuntu 上,需要同时安装 python3 和 python3-dev。在 Windows 和 macOS 上,这通常不是问题。
编译器
NumPy 的大部分是用 C 和 C++ 编写的。您将需要一个符合 C99 标准的 C 编译器,以及一个符合 C++17 标准的 C++ 编译器。
虽然构建 NumPy 不需要 FORTRAN 77 编译器,但需要运行
numpy.f2py
测试。如果未自动检测到编译器,则会跳过这些测试。请注意,NumPy 主要使用 GNU 编译器开发,并在 MSVC 和 Clang 编译器上进行测试。其他供应商(如 Intel、Absoft、Sun、NAG、Compaq、Vast、Portland、Lahey、HP、IBM)的编译器仅以社区反馈的形式提供支持,可能无法开箱即用。建议使用 GCC 6.5(及更高版本)编译器。在 ARM64(aarch64)上,建议使用 GCC 8.x(及更高版本)。
线性代数库
NumPy 不需要安装任何外部线性代数库。但是,如果这些库可用,NumPy 的设置脚本可以检测到它们并将其用于构建。可以使用许多不同的 LAPACK 库设置,包括优化的 LAPACK 库,如 OpenBLAS 或 MKL。这些库的选择和位置以及包含路径和其他此类构建选项可以在
.pc
文件中指定,如 BLAS and LAPACK 中所述。Cython
要构建 NumPy,您需要较新版本的 Cython。
NumPy 源代码
按照 Contributing to NumPy 中的说明克隆存储库。
注意
从 1.26 版本开始,NumPy 将采用 Meson 作为其构建系统(有关更多详细信息,请参见 Status of numpy.distutils and migration advice 和 Understanding Meson)。
基本安装#
要从源代码的本地副本构建和安装 NumPy,请运行
pip install .
这将安装所有构建依赖项,并使用 Meson 编译和安装 NumPy C 扩展和 Python 模块。如果您需要更多地控制构建选项和命令,请参阅以下部分。
要执行可以从源文件夹运行的就地构建,请运行
pip install -r build_requirements.txt
pip install -e . --no-build-isolation
注意:有关在 NumPy 本身上进行开发工作的构建说明,请参阅 设置和使用开发环境。
使用 Meson 进行高级构建#
Meson 支持标准环境变量 CC
、CXX
和 FC
以选择特定的 C、C++ 和/或 Fortran 编译器。这些环境变量在 Meson 文档中的参考表 中进行了说明。
请注意,环境变量仅从干净构建中应用,因为它们会影响配置阶段(即 meson 设置)。增量重建不会对环境变量中的更改做出反应 - 您必须运行 git clean -xdf
并进行完全重建,或运行 meson setup --reconfigure
。
有关包括选择编译器、设置自定义编译器标志和控制并行性在内的更多选项,请参阅 编译器选择和自定义构建(来自 SciPy 文档)和 Meson FAQ。
测试#
务必测试您的构建。为了确保一切保持正常,请查看是否所有测试都通过。
测试套件需要其他依赖项,可以使用以下命令轻松安装:
python -m pip install -r test_requirements.txt
使用以下命令运行完整测试套件:
cd .. # avoid picking up the source tree
pytest --pyargs numpy
有关测试的详细信息,请参阅 测试构建。
加速的 BLAS/LAPACK 库#
NumPy 搜索优化的线性代数库,例如 BLAS 和 LAPACK。有特定的顺序来搜索这些库,如下所述以及 meson_options.txt 文件中所述。