是否可以在python会话中导入SageMath函数?
从用户的角度来看,我想做的事情如下:
>>> import sage
>>> sage.kronecker_symbol(3,5) # ...or any other sage root functions
而不是从sagemath会话访问kronecker_symbol(3,5)
。如果可能的话,它将非常方便,因为它允许将SageMath的所有功能嵌入到python世界中。
发布于 2020-04-26 01:41:40
在Python会话中导入SageMath函数
要做到这一点,有几种方法。
来自操作系统包管理器的SageMath
有些操作系统有Sage本地打包,例如Arch、Debian、Fedora、Gentoo、NixOS及其衍生产品( Linux、Manjaro、Ubuntu.)。
请参阅Sage wiki上的专用“分发”页面:
如果使用其中之一,请使用包管理器安装sage
或sagemath
,然后Sage库将安装在系统的Python上,在该Python中可以执行以下操作
>>> from sage.arith.misc import kronecker
>>> kronecker(3, 5)
-1
另一种选择是使用跨平台包管理器,如Conda、Guix和Nix。这些应该适用于大多数Linux发行版和macOS。另一种选择是运行一个码头集装箱。
下面我会详细介绍Conda的案子。
SageMath与Conda
用Conda安装Sage,你就会得到它。
指示如下:
首先安装一个Conda发行版,包括Miniconda、Minimamba或Anaconda,然后创建一个sage
conda环境。
一旦安装了sage
conda环境,请激活它:
conda activate sage
在激活sage
conda环境之后,运行
python
导入sage
模块或从该模块导入kronecker
之类的函数应该可以工作。
发布于 2021-12-29 19:41:32
对于那些没有使用与Python语法不兼容的SageMath函数的人来说,这是一个补充性的答案。
例如;
from sage.all import *
F = GF(2)
R.<x> = k[]
这将在R.<x> = k[]
上产生错误,因为它不是一个有效的Python语法。那么如何解决这个问题呢?
SageMath解析SageMath语法,然后使用SageMath。我们需要使用制备法来查看实际的命令。
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来识别这些。
发布于 2022-04-21 09:59:00
1/ pip安装sage
2/来自sage进口*
https://stackoverflow.com/questions/61408795
复制相似问题