首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SageMath作为python库

使用SageMath作为python库
EN

Stack Overflow用户
提问于 2020-04-24 12:51:31
回答 3查看 8.4K关注 0票数 9

是否可以在python会话中导入SageMath函数?

从用户的角度来看,我想做的事情如下:

代码语言:javascript
运行
复制
>>> import sage
>>> sage.kronecker_symbol(3,5)  # ...or any other sage root functions

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-26 01:41:40

在Python会话中导入SageMath函数

要做到这一点,有几种方法。

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

有些操作系统有Sage本地打包,例如Arch、Debian、Fedora、Gentoo、NixOS及其衍生产品( Linux、Manjaro、Ubuntu.)。

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

如果使用其中之一,请使用包管理器安装sagesagemath,然后Sage库将安装在系统的Python上,在该Python中可以执行以下操作

代码语言:javascript
运行
复制
>>> 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环境,请激活它:

代码语言:javascript
运行
复制
conda activate sage

在激活sage conda环境之后,运行

代码语言:javascript
运行
复制
python

导入sage模块或从该模块导入kronecker之类的函数应该可以工作。

票数 8
EN

Stack Overflow用户

发布于 2021-12-29 19:41:32

对于那些没有使用与Python语法不兼容的SageMath函数的人来说,这是一个补充性的答案。

例如;

代码语言:javascript
运行
复制
from sage.all import *

F = GF(2)
R.<x> = k[]

这将在R.<x> = k[]上产生错误,因为它不是一个有效的Python语法。那么如何解决这个问题呢?

SageMath解析SageMath语法,然后使用SageMath。我们需要使用制备法来查看实际的命令。

代码语言:javascript
运行
复制
sage: preparse('R.<x> = k[]')
"R = k['x']; (x,) = R._first_ngens(1)"

所以换一条线,好了!

代码语言:javascript
运行
复制
from sage.all import *

F = GF(2)
R = k['x']; (x,) = R._first_ngens(1)

不幸的是,必须使用SageMath来识别这些。

票数 6
EN

Stack Overflow用户

发布于 2022-04-21 09:59:00

1/ pip安装sage

2/来自sage进口*

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61408795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档