首页 > 解决方案 > 在 SAGE 8.9 中安装 GAP 包

问题描述

我在 Windows 10 上运行 SageMath 8.9。我想运行以下代码:

gap.eval('LoadPackage("grape")')
gap.eval("n := 5")
gap.eval("grp := Group([ (1,2,3,4,5), (1,2,4,3) ])")
gap.eval("Der := []; for x in grp do if NrMovedPoints(x)=n then AddSet(Der,x); fi; od;")
gap.eval("Cay := CayleyGraph(grp, Der)")

这会引发 RuntimeError。当我运行时:

from sage.features.gap import GapPackage
GapPackage("grape", spkg="gap_packages").is_present()

它表示“葡萄”不可用。所以我想安装它;但是,通过一些在线搜索,我遇到了以下命令:

sage -i gap_packages

但这不起作用,因为 'sage' 没有添加到 PATH 中(而且我不知道该怎么做)。

现在我独立于 Sage 安装了 GAP 4.10.2,它确实安装了“葡萄”。如果我无法将grape安装到sage中,我该如何指导Sage查看另一个安装的GAP?我试过这个(从这里):

import sage.interfaces.gap
sage.interfaces.gap.gap_cmd = "/usr/local/bin/gap"

我将“/usr/local/bin/gap”更改为“C:/gap-4.10.2/bin/gap.bat”,这是我通常启动 GAP 的方式。那没起效。

注意:我已经阅读了这里的解决方案,但它对我不起作用(如上所述)。该用户似乎一直在运行 OSX,而​​我正在运行 Windows 10。此外,这个问题已经有 7 年历史了,也许该方法已经过时了。其他在线方法(例如在此处找到)似乎已过时。我找不到任何最近的东西(关于 Windows 上的 Sage 版本 8.9)。

对此的任何帮助将不胜感激!

标签: packagesagegap-system

解决方案


如果你能得到一个终端提示,你也许可以./sage -i gap_packages在 sage 根目录中运行(这会抢占将 sage 添加到 PATH 的需要)。不过我不在 Windows 上使用 Sage,所以我不确定这是否可行。

另一种方法是,您可以将功能间隙安装的包文件夹中的文件夹复制到 Sage 安装中的适当位置。您应该将葡萄文件夹从 复制$GAP_ROOT/pkg$SAGE_ROOT/local/lib/gap/pkg/


推荐阅读