小能豆

如何构建一个 python 函数,其中输入是 python 代码,输出是 ipython 富输出(以 HTML 形式)?

py

我如何构造一个foo()函数

pycode = '''
from matplotlib import pyplot as plt
plt.plot([1, 2, 3])
plt.show()
'''

out = foo(pycode)

outipython 或 jupyter notebook 输出的富文本 HTML 输出在哪里

ipython 中是否有一些内置函数可以执行此操作?我猜是有的,但我在谷歌上找不到它。

编辑:我希望该函数存在于我的 python 脚本中,而不是在我运行 ipython shell 时

编辑:我想要做的是本质上重新创建类似 jupyter 笔记本单元的东西,我给它代码,它像 jupyter 笔记本单元一样以视觉方式(可能为 HTML 形式)返回丰富的输出。


阅读 7

收藏
2024-10-29

共1个答案

小能豆

要创建一个这样的函数,foo()运行 Python 代码并以 HTML 格式捕获丰富的输出(包括图表、文本等),您可以使用IPythondisplay工具capture,以及Jupyter在后台运行的内核。以下是一种使用IPythonInteractiveShell实用capture_output程序来模拟笔记本单元执行的方法。

设置方法如下:

  1. 安装 IPython (如果还没有的话):

pip install ipython

  1. 定义foo()

```
from IPython.display import display
from IPython.core.interactiveshell import InteractiveShell
from IPython.utils.capture import capture_output

def foo(code):
shell = InteractiveShell.instance() # Get the IPython shell instance

   # Capture the output of the code execution

   w

with capture_output(display=True) as captured:
shell.run_cell(code)

       shell.run_cell(code)

       shell.

# Return the rich HTML content of the captured output

return captured.repr_html()
```

解释

  • InteractiveShell.instance()
  • capture_output(display=True):print声明
  • captured._repr_html_():T

U

现在,你可以调用foo()w

pycode = '''
from matplotlib import pyplot as plt
plt.plot([1, 2, 3])
plt.show()
'''

out = foo(pycode)


out = foo


out = 


out


print(out)  # or display it in a web app or Jupyter Notebook cell to view the HTML output

笔记:

  • 这将在能够呈现 HTML 的环境中发挥最佳效果(例如,Jupyter Notebook、Web 应用程序或
  • 如果你在标准终端中运行这个程序,out可能
2024-10-29