我有Sage文件,名为" a.sage"和" b.sage"在同一目录中,a.sage包含来自b import blah"的行"。但是,当我跑步时,他们会跑上去。从命令行,我得到" ImportError:没有名为b"。
的模块我已经尝试过预先准备b.sage并尝试添加'。'到我的.bashrc文件中的SAGE_PATH结尾。无法找到更多建议。我很感激有人帮忙解决这个问题,因为我要把头发拉出来!
答案 0 :(得分:2)
问题是.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
但是,您需要在Python文件中根据需要从Sage导入内容,例如: from sage.all import ZZ
。
来自@Dima Pasechnik的非常有用的信息:
您可以通过执行生成Python文件sage b.sage
的{{1}}来交替执行此操作,您需要将其复制到b.sage.py
(或者更好,创建一个符号链接,即{{1} } - 你只需要这样做一次)。现在b.py
将有效。