Sagemath 作为 python 库
Sagemath as a python library
是否可以在 python 会话中导入 sagemath 函数?
我想做的,从用户的角度来看是这样的:
>>> import sage
>>> sage.kronecker_symbol(3,5) # ...or any other sage root functions
而不是从 sagemath 会话访问 kronecker_symbol(3,5)
。
如果可能的话,这将非常方便,因为可以将 sagemath 的所有功能嵌入到 python 世界中。
在 Python 会话中导入 SageMath 函数
有几种方法可以实现。
来自操作系统包管理器的 SageMath
一些操作系统自带 Sage,
例如 Arch Linux、Debian、Fedora、Gentoo、NixOS、
及其衍生物(Linux Mint、Manjaro、Ubuntu...)。
请参阅 Sage wiki 上的专用 "Distribution" 页面:
如果使用其中之一,请使用包管理器
安装 sage
或 sagemath
然后
Sage库将安装在系统的
Python,在那个 Python 中它将成为可能
做
之类的事情
>>> from sage.arith.misc import kronecker
>>> kronecker(3, 5)
-1
另一种选择是使用跨平台包管理器
例如 Conda、Guix 和 Nix。这些应该适用于大多数
Linux 发行版和 macOS。另一种选择是
到 运行 一个 Docker 容器。
我将在下面详细介绍 Conda 案例。
SageMath 与 Conda
用 Conda 安装 Sage,你就会得到它。
说明在这里:
然后从安装 Conda 发行版开始,要么
Miniconda、Minimamba 或 Anaconda,然后创建一个
sage
conda环境。
安装 sage
conda 环境后,激活它:
conda activate sage
有了 sage
conda 环境,运行
python
并导入 sage
模块或导入函数
例如该模块中的 kronecker
应该可以工作。
这是对那些未能使用某些与 Python 语法不兼容的 SageMath 函数的人的补充答案。
例如;
from sage.all import *
F = GF(2)
R.<x> = k[]
这将在 R.<x> = k[]
上产生错误,因为它不是有效的 Python 语法。那么如何解决这个问题呢?
SageMath 解析 SageMath 语法然后使用 Python。需要使用 preparse 才能看到实际命令。
sage: preparse('R.<x> = k[]')
"R = k['x']; (x,) = R._first_ngens(1)"
所以替换线,完成!
from sage.all import *
F = GF(2)
R = k['x']; (x,) = R._first_ngens(1)
不幸的是,必须使用 SageMath 来识别这些。
1/ pip 安装 sage
2/ 来自鼠尾草导入 *
是否可以在 python 会话中导入 sagemath 函数?
我想做的,从用户的角度来看是这样的:
>>> import sage
>>> sage.kronecker_symbol(3,5) # ...or any other sage root functions
而不是从 sagemath 会话访问 kronecker_symbol(3,5)
。
如果可能的话,这将非常方便,因为可以将 sagemath 的所有功能嵌入到 python 世界中。
在 Python 会话中导入 SageMath 函数
有几种方法可以实现。
来自操作系统包管理器的 SageMath
一些操作系统自带 Sage, 例如 Arch Linux、Debian、Fedora、Gentoo、NixOS、 及其衍生物(Linux Mint、Manjaro、Ubuntu...)。
请参阅 Sage wiki 上的专用 "Distribution" 页面:
如果使用其中之一,请使用包管理器
安装 sage
或 sagemath
然后
Sage库将安装在系统的
Python,在那个 Python 中它将成为可能
做
>>> from sage.arith.misc import kronecker
>>> kronecker(3, 5)
-1
另一种选择是使用跨平台包管理器 例如 Conda、Guix 和 Nix。这些应该适用于大多数 Linux 发行版和 macOS。另一种选择是 到 运行 一个 Docker 容器。
我将在下面详细介绍 Conda 案例。
SageMath 与 Conda
用 Conda 安装 Sage,你就会得到它。
说明在这里:
然后从安装 Conda 发行版开始,要么
Miniconda、Minimamba 或 Anaconda,然后创建一个
sage
conda环境。
安装 sage
conda 环境后,激活它:
conda activate sage
有了 sage
conda 环境,运行
python
并导入 sage
模块或导入函数
例如该模块中的 kronecker
应该可以工作。
这是对那些未能使用某些与 Python 语法不兼容的 SageMath 函数的人的补充答案。
例如;
from sage.all import *
F = GF(2)
R.<x> = k[]
这将在 R.<x> = k[]
上产生错误,因为它不是有效的 Python 语法。那么如何解决这个问题呢?
SageMath 解析 SageMath 语法然后使用 Python。需要使用 preparse 才能看到实际命令。
sage: preparse('R.<x> = k[]')
"R = k['x']; (x,) = R._first_ngens(1)"
所以替换线,完成!
from sage.all import *
F = GF(2)
R = k['x']; (x,) = R._first_ngens(1)
不幸的是,必须使用 SageMath 来识别这些。
1/ pip 安装 sage
2/ 来自鼠尾草导入 *