4

我正在设置 IPython 以自动加载 Sympy 并在启动时配置它的输出方法。但是,无论我尝试什么,我都无法初始化乳胶/unicode 样式的输出打印。

采取的步骤:

ipython3 create profile sympy
# this is where the profile was created
cd ~/.config/ipython/profile_sympy/startup
gedit 00-startup.py
# add some content (below)
sudo chmod a+x 00-startup.py

启动脚本:

import sympy
sympy.init_printing(use_unicode=True)

当我启动 ipython 时,它不会显示“漂亮打印”的输出:

ipython3
sympy.sqrt(8)

输出:

2*sqrt(2)

使用 qtconsole/notebook 的类似输出。

如果我再次运行 init_printing 命令,则漂亮的打印显示适用于该内核实例。此外,我知道启动脚本正在正常运行,因为我可以添加打印语句并获取输出(此外,包已导入并可供使用)。

我在 64 位 Ubuntu 13.10 安装上运行 sympy 0.7.3、ipython3 1.1、matplotlib 1.3.1、numpy 1.7.1、scipy 0.12.0。

顺便说一句,使用 PYTHONSTARTUP 设置运行普通的 python3 终端以运行相同的启动脚本将正确地漂亮地打印 Sympy 输出。

4

1 回答 1

3

为了回应 Jakob 的评论,ipython3 1.1.0 仍在使用交互式 sympy 模块而不是 sympy 0.7.3 的 init_printing,理论上它工作正常,除了我在开始时得到讨厌的警告输出。我也不太热衷于将 sympy 中的所有内容导入全局命名空间,捆绑的 sympy 配置会这样做(以及定义一些变量)。

但是,该建议确实帮助我找到了解决方法:

我没有将启动代码放入 中00-startup.py,而是修改了ipython_config.py文件以在启动时执行其他行:

c.InteractiveShellApp.exec_lines = ['''
import sympy
sympy.init_printing(use_latex=True)
''']

我不确定这是否是 sympy 或 ipython 中的错误,但此选项肯定有效。

于 2013-10-20T10:18:50.440 回答