我使用sympy解决了一个分析问题并将所有内容保存在.py文件中。当我用ipython filename.py运行代码(包括init_printing())时,每当我使用pprint在文件中打印时,我都会得到很好的unicode输出。到目前为止一切都很好。
当我在ipython qtconsole中导入sympy时,我可以得到漂亮的LaTeX输出,就像sympy的文档中所述。但是,只有当交互式控制台完成这项工作时,我才能获得良好的打印效果,即:
Integral(sqrt(1/x), x)
生成了一个LaTeX图像,而
pprint(Integral(sqrt(1/x), x))
会生成unicode输出。
使用
从文件运行代码时run filename.py
我看到创建输出的唯一方法是使用pprint,即我没有得到LaTeX输出。
有没有人看到解决方案?非常感谢。
答案 0 :(得分:1)
我只想在这里提出适合我的解决方案。 Matt的答案以某种方式包括它:我想要的是一个创建漂亮乳胶打印输出的电话。以下工作:
from IPython.display import display
import sympy
sympy.init_printing()
display(sympy.symbols("alpha"))
如果调用此代码段,例如与
%run "filename.py"
在qtconsole或ipython notebook中,alpha会很好地显示。
答案 1 :(得分:0)
在许多情况下,我认为返回一个对象(触发显示挂钩)和显示它之间存在混淆。是与
相同的区别def funp():
print 1
和
def funr():
return 1
如果以交互方式执行,两者都将“显示”1,但不会在脚本中执行。在IPython中,您可以看到与Out []提示的区别,这些提示是否显示取决于返回或显示的内容。我想你需要from IPython.display import display_pretty
In[1]: display_pretty(I)
⌠
⎮ ___
⎮ ╱ 1
⎮ ╱ ─ dx
⎮ ╲╱ x
⌡
或者from IPython.display import display_latex