IPython控制台#

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

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

要启动一个新的IPython实例,请转到Consoles菜单下的New console (default settings),或者在控制台获得焦点时使用键盘快捷键Ctrl-T(在macOS上是Cmd-T)。

Spyder showing opening a new Ipython Console

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

支持的功能#

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

  • 自动代码补全

  • 实时函数调用提示

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

  • 变量浏览器,提供基于图形界面的编辑器,支持多种内置和第三方Python对象。

  • 在Spyder的Plots面板中显示Matplotlib图形(如果在Preferences ‣ IPython console ‣ Graphics ‣ Graphics backend下选择了Inline后端),并且如果在Plots面板的选项菜单中未勾选Mute inline plotting,则会在控制台中内联显示。

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的内容(显示系统路径内容)。 此外,您还可以让每个控制台显示其运行时长,通过显示运行时间功能。

Spyder IPython Console with options menu

您也可以通过重命名标签页选项或直接双击来更改当前IPython控制台标签页的名称。

Spyder IPython Console showing renaming console

使用外部内核#

您可以通过Consoles菜单下的Connect to an existing kernel对话框连接到外部本地和远程内核(包括由Jupyter Notebook或QtConsole管理的那些内核)。 要使此功能正常工作,必须在运行外部内核的环境或机器中安装兼容版本的spyder-kernelsmust be installed

Connect to external kernel dialog of the Spyder IPython console

连接到本地内核#

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

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

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

    为了方便起见,在连接文件路径字段中输入的内核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. 点击Consoles菜单中的连接到现有内核,然后浏览或输入上一步中连接文件的路径。

    为了方便起见,如果在连接文件路径字段中输入内核ID号(例如1234),且您已将连接文件复制到本地机器上,则该ID号将被自动扩展为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