Sagemath 作为 python 库

标签 sage

是否可以在 python session 中导入 sagemath 函数?

从用户的角度来看,我希望做的是:

>>> import sage
>>> sage.kronecker_symbol(3,5)  # ...or any other sage root functions

而不是访问 kronecker_symbol(3,5)从 sagemath session 。
如果可能的话,它会非常方便,因为它允许将 sagemath 的所有功能嵌入到 python 世界中。

最佳答案

在 Python session 中导入 SageMath 函数

有几种方法可以实现这一目标。

来自操作系统包管理器的 SageMath

一些操作系统原生封装了 Sage,
例如 Arch Linux、Debian、Fedora、Gentoo、NixOS、
及其衍生产品(Linux Mint、Manjaro、Ubuntu ...)。

请参阅 Sage wiki 上的专用“分发”页面:

  • SageMath distribution and packaging

  • 如果使用其中之一,请使用包管理器
    安装sagesagemath然后
    Sage 库将安装在系统的
    Python,在那个 Python 中,这将成为可能
    做类似的事情
    >>> from sage.arith.misc import kronecker
    >>> kronecker(3, 5)
    -1
    

    另一种选择是使用跨平台包管理器
    例如 Conda、Guix 和 Nix。这些应该适用于大多数
    Linux 发行版和 macOS。另一种选择是
    运行 Docker 容器。

    我将在下面详细介绍 Conda 案例。

    SageMath 与 Conda

    用 Conda 安装 Sage,你会得到它。

    说明在这里:
  • SageMath installation: install from conda-forge

  • 并从安装 Conda 发行版开始,要么
    Miniconda、Minimamba 或 Anaconda,然后创建一个sage conda 环境。

    一次 sage conda 环境已安装,激活它:
    conda activate sage
    

    有了 sage conda 环境激活,运行
    python
    

    并导入 sage模块或导入函数
    kronecker从那个模块应该可以工作。

    关于Sagemath 作为 python 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61408795/

    相关文章:

    python - SageMathCloud : Error: unexpected EOF while parsing

    sage - 替换 sage 中的变量值

    Python 与 Sage 的导入错误

    python - 没有名为 'sage.all' 的模块

    python - 排列 : producing cycle notation

    python - 使用 Python 创建自定义语言

    python - 从符号多项式获取向量空间坐标

    python - 计算交叉比

    javascript - 从 Javascript 调用 SageMath 函数

    python - 正交子空间