常见病

除了一般的故障排除步骤外,一些经常报告的问题还需要更专业的解决方案。

启动内核时出错

如果你收到消息 An error occurred while starting the kernelIPython控制台 ,Spyder无法在当前工作环境中启动新的Python解释器来运行代码。有许多问题可能会导致这种情况,但大多数问题都可以通过简单的步骤快速修复。

Spyder内核未安装/不兼容

Spyder需要受支持的 spyder-kernels 要在其中运行控制台的工作环境中存在的包。

Kernel version error dialog

默认情况下,Anaconda包含了它,但是如果您想在另一个Python环境或安装中运行代码,则需要确保它已安装并更新到最新版本。

在下表中检查您的spyder版本所需的spyder内核版本:

Spyder和Spyder内核版本兼容性

斯派德

Spyder内核

4.0.0-4.0.1

1.8.1

4.1.0-4.1.2

1.9.0

4.1.3

1.9.1

4.1.4

1.9.3

为此,请激活环境,然后安装 spyder-kernels . 如果使用Anaconda,请打开一个终端(Windows上的Anaconda提示符)并运行:

conda activate ENVIRONEMENT-NAME
conda install spyder-kernels=<VERSION>

否则,请使用您创建的任何方法激活您的环境,并执行:

pip install spyder-kernels==<VERSION>

对于前面的两个命令,请替换 <VERSION> 表中相应的版本。

其他依赖项问题

如果内核显示一个长错误回溯,其中提到其他包,比如 ipythonipykerneljupyter_clienttraitletspyzmq ,问题可能是依赖项包的过期或版本不兼容。要解决此问题,请激活环境并更新关键依赖项。

在水蟒环境中:

conda activate ENVIRONMENT-NAME
conda update spyder-kernels ipython ipykernel jupyter_client jupyter_core pyzmq traitlets

否则,请通过创建环境的任何方式激活它,然后运行:

pip install -U spyder-kernels ipython ipykernel jupyter_client jupyter_core pyzmq traitlets

属性错误/重要错误

检查错误消息的最后几行,看看它是否 AttributeErrorImportError ,或引用在当前工作目录或主文件夹中创建的文件 (C:/Users/YOUR_USERNAME 在Windows上, /Users/YOUR_USERNAME 在macOS上,或 /home/YOUR_USERNAME 在Linux上)。

Spyder's AtributeError dialog

如果是这样,那么错误很可能是由于文件的名称与Python标准库模块的名称相同,例如 string.pytime.py ,它重写Spyder Kernels尝试加载的内置模块。要解决这个问题,只需将文件重命名为其他名称,然后尝试重新启动内核。要检查这些模块的名称,请参阅中的列表 Python standard library documentation .

完成/帮助不起作用

为了在编辑器中提供代码完成、帮助和实时分析,Spyder使用Python语言服务器(PyLS),这是VSCode、Atom和其他流行编辑器/IDE使用的语言服务器协议规范的实现。大多数帮助和完成问题都不在Spyder的控制范围之内,要么是PyLS的局限性,要么是被内省的代码,但有些问题是可以解决的。

对象缺少docstring

如果在调用提示、悬停提示或帮助窗格中没有显示任何内容,则您尝试自省的对象可能没有docstring。

Docstring not found in help pane

在这种情况下,唯一的解决方案是在原始函数、方法或类的源代码中添加一个。

找不到对象

有些对象,不管是用C、Cython或其他语言编写的;在运行时动态生成的;或者是您创建的对象的一个方法,如果不执行代码,就很难找到这些对象。

Object not found in help pane

但是,一旦您在 IPython控制台 ,您可以在那里获得有关该对象的帮助和完成。

LSP已停止工作

偶尔,尤其是在使用Spyder一段时间后,代码完成、帮助和分析可能会停止工作。如果是这种情况,可以使用 LSP Python 在屏幕底部的Spyder状态栏中,单击鼠标右键并选择 Restart Python Language Server 项目。

Spyder with LSP restart dialog

Spyder错误/依赖性问题

考虑到使LSP工作所涉及的各种依赖关系,环境中不兼容或过期的版本可能会导致错误消息、不完整的结果或帮助/分析根本不起作用。

要解决此问题,请首先尝试更新Anaconda和Spyder,如中所述 基本急救 . 如果问题仍未解决,请使用以下内容更新各种相关依赖项:

conda update python-language-server

插件问题

插件根本不工作

如果您安装了Spyder插件,但看不到,请转到 Panes 的子菜单 View 菜单并选择插件的名称,这将使其窗格可见。如果没有看到插件,请选择 Dependencies 项目 Help 菜单,查看插件是否出现在底部。

Dependencies dialog showing Unittest plugin

如果存在问题的插件未在“依赖项”对话框中列出,请检查是否将其安装在与Spyder相同的环境中。如果有,那么问题很可能是由依赖性问题引起的。测试您是否可以手动导入插件,方法是在与Spyder相同的环境中打开Python控制台并键入,例如, import spyder_unittest 要测试Spyder Unittest`插件,此命令应运行正常。

如果这些都不能帮助您解决问题,请继续下一节。

其他问题

如果您遇到一个错误,其中提到或涉及Spyder插件,例如 spyder-unittestspyder-terminalspyder-notebook ,或者如果您在使用Spyder插件时遇到任何其他问题,那么第一种方法应该是将Spyder和插件更新到最新版本。

如果这不能解决问题,您应该检查插件的网站或存储库,看看它是否与您的Spyder版本兼容。

最后,如果兼容性似乎不是问题所在,请检查这些存储库以查看是否已打开问题,如果没有,请在那里报告。