从Conda-Forge安装

SageMath可以通过Conda安装在Linux和MacOS上,可从 conda-forge 康达频道。

这两个 x86_64 (Intel) architecture and the arm64/aarch64 支持体系结构(包括Apple Silicon、M1)。

您将需要一个工作的Conda安装:Miniforge(或Mambaforge)、Minconda或Anaconda。如果您还没有,我们建议您安装 Miniforge 具体如下。在终端中,

$ curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
$ bash Miniforge3-$(uname)-$(uname -m).sh
  • Miniforge(和Mambaforge)使用Conda-Forge作为默认通道。

  • 如果您使用的是Minconda或Anaconda,请将其设置为使用Conda-Forge:

    • 添加Conda-Forge通道: conda config --add channels conda-forge

    • 将通道优先级更改为严格: conda config --set channel_priority strict

如果您安装了Miniforge(或Mambaforge),我们建议您使用 mamba 在下面的示例中,使用的依赖项解算器比 conda

从Conda安装所有SageMath(不用于开发)

创建包含SageMath的新Conda环境,可以使用 mambaconda

哪里 X 是Python的版本,例如 3.9

要在那里使用Sage,

  • 进入新环境: conda activate sage

  • 启动SageMath: sage

如果有任何安装失败,请打开一个 GitHub Issue for conda-forge/sage-feedstock

使用Conda为Sage发行版提供系统包

是否安装了Conda(通过输入以下命令进行检查 conda info ),您可以从源代码安装SageMath,如下所示:

  • 创建一个新的CONDA环境,包括SAGE识别的所有标准包,并将其激活::

    $ conda env create --file environment-3.11-linux.yml --name sage-build
    $ conda activate sage-build
    

    如果您使用不同的体系结构,请替换 linux 通过 macos 。或者,使用 environment-optional-3.11-linux.yml 代替 environment-3.11-linux.yml 创建一个拥有SAGE认可的所有标准和可选程序包的环境。

    可通过替换来选择不同的Python版本 3.11 通过 3.93.10 在这些命令中。

  • 然后,将使用Conda提供的编译器并使用Conda::安装的许多包来构建SageMath发行版

    $ ./bootstrap
    $ ./configure --with-python=$CONDA_PREFIX/bin/python \
                  --prefix=$CONDA_PREFIX
    $ make
    

使用Conda为Sage库提供所有依赖项

您可以从源代码构建和安装Sage库,使用conda提供它的所有依赖项。这绕过了Sage发行版的大部分构建系统,是为Sage开发设置环境的最快方式。

在这里,我们假设您正在使用Git结账。

  • 或者,为Sage库设置构建并行度。使用对您的计算机有意义的任何值-不超过核心数:

    $ export SAGE_NUM_THREADS=24
    
  • 使用Sage的依赖项和一些其他开发人员工具创建并激活新的Conda环境::

    .. tab:: mamba
    
      .. code-block:: shell
    
          $ mamba env create --file src/environment-dev-3.11-linux.yml --name sage-dev
          $ conda activate sage-dev
    
    .. tab:: conda
    
      .. code-block:: shell
    
          $ conda env create --file src/environment-dev-3.11-linux.yml --name sage-dev
          $ conda activate sage-dev
    

    或者,您可以使用 src/environment-3.11-linux.ymlsrc/environment-optional-3.11-linux.yml ,它将只安装标准(和可选)包,而不安装任何额外的开发人员工具。

    可通过替换来选择不同的Python版本 3.11 通过 3.93.10 在这些命令中。

  • 引导源代码树并安装构建先决条件和Sage库:

    $ ./bootstrap
    $ pip install --no-build-isolation -v -v --editable ./pkgs/sage-conf_conda ./pkgs/sage-setup
    $ pip install --no-build-isolation --config-settings editable_mode=compat -v -v --editable ./src
    
  • 验证是否已安装Sage::

    $ sage -c 'print(version())'
    SageMath version 10.2.beta4, Release Date: 2023-09-24
    

请注意 make 根本没有用过。所有依赖项(包括所有的Python包)都由Conda提供。

因此,您将更快地获得Sage的工作版本。但是,请注意,这将使任何Sage-the-Distributed命令的使用失效,例如 sage -i 。不要使用它们。

通过使用 pip install --editable 在上述步骤中,Sage库以可编辑模式安装。这意味着当您只编辑Python文件时,不需要重新构建库;重新启动Sage就足够了。

编辑任何Cython文件后,使用以下命令重建Sage库:

$ pip install --no-build-isolation --config-settings editable_mode=compat -v -v --editable src

为了稍后更新CONDA环境,您可以运行::

$ mamba env update --file src/environment-dev-3.11-linux.yml --name sage-dev

要构建文档,请使用:

$ pip install --no-build-isolation -v -v --editable ./pkgs/sage-docbuild
$ sage --docbuild all html

备注

交换机 --config-settings editable_mode=compat 恢复 legacy setuptools implementation of editable installations 。喜欢冒险的开发人员可能会省略此开关,而尝试可编辑安装的现代PEP-660实现,请参阅 :issue:`34209`

备注

您可以通过运行以下命令来更新Conda锁文件 .github/workflows/conda-lock-update.py 或者通过跑步 conda-lock --platform linux-64 --filename src/environment-dev-3.11-linux.yml --lockfile src/environment-dev-3.11-linux.lock 手工操作。