无法在同一目录中导入 .sage 文件

Can't import .sage file in same directory

我在同一目录中有名为 "a.sage" 和 "b.sage" 的 Sage 文件,并且 a.sage 包含行 "from b import blah"。但是,当我从命令行 运行 "sage a.sage" 时,我得到 "ImportError: No module named b".

我试过准备 b.sage 并且我试过添加“.”到我的 .bashrc 文件中 SAGE_PATH 的末尾。找不到更多建议。我将不胜感激有人对此的帮助,因为我正在拔头发!

问题是 .sage 文件不是 Python 模块。

Traceback (most recent call last):
  File "a.sage.py", line 3, in <module>
    from b import foo
ImportError: No module named b

如果你想以这种方式导入模块,我想你需要制作一个Python模块。

$ mv b.sage b.py
$ sage a.sage
hi

但是,您需要根据需要从 Sage 导入 Python 文件中的内容,例如from sage.all import ZZ.

来自@Dima Pasechnik 的额外非常有用的信息:

您可以通过执行 sage b.sage 来交替执行此操作,它会生成一个 Python 文件 b.sage.py,您需要将其复制到 b.py(或者更好的是,创建一个符号链接,即 ln -s b.sage.py b.py - 你只需要这样做一次)。现在 import b 可以工作了。