如何在IPython 7中禁用LaTeX渲染输出纯ASCII/Unicode文本?
问题说明
运行以下代码时:
from numpy.polynomial import Polynomial p = Polynomial([1, 2]) print(p) print(p.__repr__()) print(p.__str__())
三条print命令均可正常输出纯文本结果,但直接在控制台输入p执行时,会返回LaTeX排版的图片形式多项式渲染结果。需要找到IPython对应配置项,禁用该LaTeX渲染功能,仅返回ASCII或Unicode格式纯文本。
已尝试操作:取消勾选Spyder路径「Preferences|IPython console|Advanced settings|Use symbolic math」下的对应选项,问题未解决。
解决方法
- 当前会话临时生效:在控制台直接执行以下命令,关闭IPython的LaTeX格式化器即可,执行后再输入变量名就会返回纯文本结果:
get_ipython().display_formatter.formatters['text/latex'].enabled = False
- 永久生效配置:
- 如果没有IPython默认配置文件,先在系统命令行执行
ipython profile create生成配置文件,配置文件默认路径:- Linux/macOS:
~/.ipython/profile_default/ipython_config.py - Windows:
C:\Users\当前用户名\.ipython\profile_default\ipython_config.py
- Linux/macOS:
- 打开配置文件,添加如下配置项,让IPython启动时自动关闭LaTeX渲染:
- 如果没有IPython默认配置文件,先在系统命令行执行
c.InteractiveShellApp.exec_lines = [ "get_ipython().display_formatter.formatters['text/latex'].enabled = False" ]
- Spyder特殊适配:
Spyder自带的「Use symbolic math」开关仅对SymPy等符号计算库的渲染生效,不会拦截numpy多项式自行注册的LaTeX渲染规则,除上述全局配置外,也可以在Spyder的IPython控制台启动设置中,把关闭LaTeX格式化器的命令加入启动执行列表,避免配置被覆盖。
内容的提问来源于stack exchange,提问作者adr
相关产品推荐
相关产品推荐

