Spyder SymPy不会打印符号数学

mbi*_*ird 5 symbolic-math sympy spyder

我设置了Anaconda 2.0.0(Win 64).它有SymPy 0.7.5.

我配置了Spyder(Anaconda附带的2.3.0rc)来使用符号数学:

工具>首选项> iPython控制台>高级设置>符号数学

我创建了一个新项目和一个新文件:

# -*- coding: utf-8 -*-
from sympy import *
init_printing(use_unicode=False, wrap_line=False, no_global=True)

x = Symbol('x')
integrate(x, x)

print("Completed.")
Run Code Online (Sandbox Code Playgroud)

当我运行它(Python或iPython控制台)时,它不打印积分 - 它只打印完成.

但奇怪的是,在控制台中,如果我重新输入,那么只是运行了:

integrate(x, x)
Run Code Online (Sandbox Code Playgroud)

它确实打印了积分.

因此,从文件运行永远不会打印任何符号数学,但手动在控制台中输入?

任何人都可以帮助解决这个问题 - 也许是某种配置?

谢谢!

asm*_*rer 11

运行脚本与在IPython中执行代码不同.当您在IPython中的单元格或提示符中运行代码时,它会捕获最后一个命令的输出并将其显示给您.运行脚本时,脚本刚刚运行,显示的唯一内容是打印到屏幕上的内容.

我不认为有一种方法可以从脚本中发送IPython显示对象(这需要得到漂亮的乳胶输出)但是我可能误解了spyder如何在IPython中执行代码,或者错过了它有一些钩子.你可以试试

from IPython.display import display
display(integrate(x, x))
Run Code Online (Sandbox Code Playgroud)