我正在编写一些软件来创建模拟数据的 matplotlib 图。由于这些绘图例程通常在无头环境中运行,因此我选择使用 matplotlib 面向对象的界面,仅在它们被保存之前明确地将画布分配给图形。这意味着我不能使用基于 pylab 或 pyplot 的解决方案来解决这个问题。
我添加了一些特殊的酱汁,因此通过调用display
绘图对象上的方法或调用__repr__
. 但是,我正在执行的检查以确定用户是否在 IPython 下运行(检查"__IPYTHON__" in dir(__builtin__)
)无法区分用户是在笔记本中还是在常规终端会话中,内联数字不起作用。
有没有办法以编程方式检查代码片段是否已在笔记本、qt 控制台或终端 IPython 会话中执行?我在这里做了什么傻事吗?我没有仔细研究显示语义,所以也许我对 IPython 内部 API 的某些部分一无所知,它将为我处理这个问题。