【发布时间】:2016-03-09 01:24:24
【问题描述】:
我在 TensorFlow 中编写了一些东西,它利用了一些很好的群论函数,这些函数在 Sage 中非常容易工作(而且从头开始编码似乎非常困难)。 Sage 部分独立工作,TensorFlow 部分独立工作,但我不知道如何让它们一起工作。
具体来说:我可以使用 Sage 函数创建一个文件 test.py 并使用以下命令从命令行运行它:
sage --python test.py
没问题。但是使用 TensorFlow 从 .py 文件调用 test.py 中定义的函数失败(“导入错误,没有名为 Sage 的模块”),可能是因为 Sage (6.x) 使用 Python 2.6.x,而 TensorFlow 使用 Python 2.7 或 3.3 +。
有没有办法解决这个问题?
谢谢!
编辑:我不确定这是否相关,但如果我启动普通 Python(TensorFlow 使用的那种),我会得到这个:
from sage.env import SAGE_LOCAL
SAGE_LOCAL
输出'$SAGE_ROOT/local'。
但是,如果我先启动 Sage,我会得到:
sage
SAGE_LOCAL
输出''/usr/lib/sagemath/local'。
如果这很重要,我刚刚升级到 Sage 7.0(不过,这在 6.10 中也不起作用)。
【问题讨论】:
-
Hacky thing to try -- 运行有 Sage 但没有 TensorFlow 的 Python,获取
import sys; print sys.path的结果,然后运行有 TensorFlow 但没有 Sage 的 Python 并运行sys.path.extend(<paths>) -
@Yaroslav:您的意思是使用
print sys.path输出的列表,然后将这些字符串中的每一个附加到 TensorFlow 的 Python 中的 sys.path 中吗?这引发了一个不同的错误,尽管仍然来自from sage.all import *。我还用更多信息编辑了上面的描述。 -
@SamuelLelièvre:也是我,我在两个地方问过,因为我不确定问题/解决方案来自 TensorFlow 或 Sage 的哪一方。
-
Python 版本应该不是问题:``` $ sage -ipython Python 2.7.9 (default, Oct 13 2015, 12:06:06) 键入“copyright”、“credits”或“许可证”以获取更多信息。 ```
标签: python tensorflow sage