我正在尝试使用cx_Freeze编译一个sagemath脚本。 (我想将其用作基于Web的AJAX同源性计算器的后端。)这有可能吗?
我可以通过以下操作在鼠尾草中安装cx_freeze:
Build Book
(我必须手动下载该软件包,以避免出现一些SSL错误)
准备编译时,请使用以下安装脚本:
sage -pip install ~/Desktop/cx_Freeze-5.1.1
然后我像这样编译:
from cx_Freeze import setup, Executable
includes = ["sage.all"]
setup(name = "c1homology" ,
version = "0.1" ,
description = "" ,
executables = [Executable("c1homology.sage")],
options = {"build_exe": {"includes": includes}}
)
,并且一次又一次地导入相同的内容之后,构建失败并显示“超出了最大递归深度”。我认为这是因为我在sage中构建时将sage.all作为包含项列出,这导致了一些递归导入。
如果我从包含中删除sage c1homologysetup.py build
,那么它可以正常编译,但是当我运行可执行文件时,它无法识别任何sage命令。具体来说,我看到了sage.all
。 (vector是我在.sage文件中使用的第一个实际的sage命令)
有什么建议吗?还是我有更好的方法来完成这一切?我可以直接运行sage脚本而不进行编译,但是加载所有的sage库需要花费很多时间-我希望编译可以使其更快。 (脚本本身执行的实际计算非常快。)
我正在使用MacOS 10.11.6,Sage 8.7。