【问题标题】:Which method of IPython is the Jupyter Notebook executing the Python code in the cell?Jupyter Notebook 在单元格中执行 Python 代码是 IPython 的哪种方法?
【发布时间】:2021-10-01 06:06:42
【问题描述】:

在 GitHub 上查看 Jupyter Notebook 的源代码,看来我是在使用 IPython 来实现 Python 解释器。

想知道在Jupyter Notebook的源码中Python代码是在哪个文件中执行的。

(Jupyter Notebook 似乎通过 websocket 将 Python 代码发送到服务器。现在就是这样。)

【问题讨论】:

  • 我认为这个问题需要更多的关注,并证明你已经研究过 Jupyter 文档。
  • @hpaulj 谢谢。我阅读了 Jupyter 文档。我了解 IPykernel 执行 Python 代码。 github.com/ipython/ipykernel ipykernel/ipkernelbase.py#execute_request -> ipykernel/ipkernel.py#do_execute -> IPython/Core/interactive.py#run_cell 谢谢你教我。

标签: python jupyter-notebook ipython


【解决方案1】:

作为警告,如果您试图了解 Python 代码是如何执行的,那么您真的不想查看 IPython 是如何做事的。我们做了非常复杂的事情来支持奇怪的功能,比如顶级异步执行。

正如您在 cmets 中指出的那样,代码流是浏览器 -> 服务器(通过 Websocket)-> IPykernel(通过 ZMQ)-> IPython。

IPython 本身会做一堆转换,代码compile/exec 将是here

您可能正在寻找compile 和exec,以及cmd module 来编写REPL。我还强烈建议将prompt toolkit 视为cmd 的替代品。

【讨论】:

    猜你喜欢
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多