IPython 控制台#

IPython 控制台允许您在 IPython 解释器中执行命令并与数据交互。

Spyder IPython Console with code, inline plots, and the In prompt

要启动新的 IPython 实例,请前往控制台菜单下的新建控制台(默认设置),或者在控制台获得焦点时使用键盘快捷键 Ctrl-T(macOS 上为 Cmd-T)。

Spyder showing opening a new Ipython Console

在同一菜单中,您可以使用中断内核停止当前正在执行的代码,使用移除所有变量清除控制台的命名空间,或使用重启内核重新启动一个全新的控制台。由于每个控制台都在独立的进程中执行,这不会影响您打开的其他控制台,并且您将能够在一个干净的环境中轻松测试您的代码,而不会干扰您的主会话。

支持的功能#

任何 IPython 控制台,无论是外部的还是由 Spyder 启动的,都支持:

  • 自动代码补全

  • 实时函数提示

  • 与增强型 Spyder 调试器的完整 GUI 集成。

  • 变量管理器,提供针对许多内置和第三方 Python 对象的基于 GUI 的编辑器。

  • 在 Spyder 的图窗面板中显示 Matplotlib 图形,前提是在首选项 ‣ IPython 控制台 ‣ 图形 ‣ 图形后端下选择了内联后端;如果图窗面板的选项菜单中未取消勾选静默内联绘图,则在控制台中内联显示。

Spyder IPython Console, with a popup list of code completion guesses

有关 IPython 本身内置的功能、命令和能力的信息,请参阅 IPython 文档

特殊控制台#

Spyder 还支持几种类型的专用控制台。Sympy 控制台允许您在 Spyder 内部直接创建和显示符号数学表达式。Cython 控制台允许您使用 Cython 语言加速代码并直接从 Python 调用 C 函数。最后,Pylab 控制台默认加载常见的 Numpy 和 Matplotlib 函数;虽然此功能已弃用且强烈不建议用于新代码,但如果遗留脚本需要,仍可使用。

Spyder showing opening a new special Console

选项菜单#

选项菜单允许您检查当前环境变量(显示环境变量),以及系统 PATH 的内容(显示 sys.path 内容)。此外,您可以让每个控制台显示其运行了多长时间(显示已用时间)。

Spyder IPython Console with options menu

您还可以使用重命名标签页选项,或简单地双击,来更改当前 IPython 控制台标签页的名称。

Spyder IPython Console showing renaming console

使用外部内核#

您可以通过控制台菜单下的连接到现有内核对话框,连接到外部本地和远程内核(包括由 Jupyter Notebook 或 QtConsole 管理的内核)。要使此功能正常工作,必须在运行外部内核的环境或机器中安装兼容版本的 spyder-kernels 包。

Connect to external kernel dialog of the Spyder IPython console

连接到本地内核#

要连接到已在运行的本地内核(例如由 Jupyter notebook 启动的内核),

  1. 在您想要连接的 notebook 或控制台中运行 %connect_info,并复制其内核连接文件的名称,该名称显示在 jupyter <app> --existing 之后。

    Running connect_info in a Jupyter notebook
  2. 在 Spyder 中,点击控制台菜单中的连接到现有内核,并粘贴上一步中的连接文件名称。

    为了方便,在连接文件路径字段中输入的内核 ID 号(例如 1234)将扩展为文件的完整路径,即 jupyter/runtime/dir/path/kernal-id.json

    Copying the connection filename into Spyder's dialog
  3. 点击确定连接到内核。

    Connecting to the kernel and running basic commands.

连接到远程内核#

要连接到远程机器上的内核,

  1. 如果远程主机上没有运行 Spyder 内核,请使用 python -m spyder_kernels.console 启动一个。

    Staring a Spyder kernel on a remote machine
  2. 将内核的连接文件(jupyter/runtime/dir/path/kernel-pid.json)复制到您正在运行 Spyder 的机器上。

    您可以通过在与内核相同的 Python 环境中执行 jupyter --runtime-dir 来获取 jupyter/runtime/dir/path。通常,您要查找的连接文件将是此目录中最新的文件之一,与您启动外部内核的时间相对应。

    Using SCP to copy the connection file to the local machine
  3. 点击控制台菜单中的连接到现有内核,然后浏览或输入上一步中的连接文件路径。

    为了方便,如果在连接文件路径字段中输入了内核 ID 号(例如 1234),则该路径将扩展为本地机器上的 jupyter/runtime/dir/path/kernal-id.json,前提是您已将连接文件复制到本地。

    Opening the connect to kernel dialog and browsing for the path
  4. 勾选这是远程内核(通过 SSH)复选框,并输入远程机器的主机名或 IP 地址、用户名和要连接的端口。然后,输入远程机器上 username 的密码,*或者*浏览到已注册的 SSH 密钥文件(通常在本地机器主文件夹的 .ssh 目录中,通常名为 id_rsa 或类似名称);只需其中之一即可连接。如果您勾选保存连接设置,这些详细信息将被记住,并在下次打开对话框时自动为您填充。

    请注意,端口是远程机器上 SSH 守护进程(sshd)正在监听的端口号,通常为 22,除非您或您的管理员另有配置。

    Entering pre-filled SSH details into the connection dialog
  5. 点击确定连接到远程内核

    Connecting to the remote kernel and running basic commands

有关连接到远程内核的更多技术细节,请参阅 IPython Cookbook 中的连接到远程内核页面。

重新加载已更改的模块#

在交互式会话中工作时,Python 只会在第一次导入模块时,从其源文件加载一次。

Spyder 的用户模块重新加载器(UMR)会在模块被修改和重新导入时,自动在您现有的 IPython 控制台中重新加载它们。启用 UMR 后,您可以在不重启内核的情况下测试代码更改。

Spyder showing reloading modules in console

UMR 默认启用,它会在激活时在控制台中显示红色的 Reloaded modules: 消息,列出已刷新的文件。如果需要,您可以在首选项 ‣ Python 解释器 ‣ 用户模块重新加载器(UMR)下开启或关闭它,并防止特定模块被重新加载。

Spyder preferences showing option to use module reloader