常见问题#
除了常规的故障排除步骤之外,一些常见问题需要更专业的解决方案。
启动内核时出错#
如果您在IPython 控制台中收到消息An error occurred while starting the kernel
(启动内核时发生错误),则表示 Spyder 无法在当前工作环境中启动新的 Python 解释器来运行您的代码。这可能由多种问题引起,但大多数都可以通过几个简单的步骤快速解决。
Spyder-Kernels 未安装/不兼容#
Spyder 要求您希望运行控制台的工作环境中存在受支持版本的spyder-kernels
包。

它默认包含在 Anaconda 中,但如果您想在其他 Python 环境或安装中运行代码,则需要确保它已安装并更新到最新版本。
请在下表中检查您的 Spyder 版本所需的 spyder-kernels 版本
Spyder |
Spyder-Kernels |
---|---|
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 |
4.1.5-4.1.6 |
1.9.4 |
4.2.0 |
1.10.0 |
5.0.0-5.0.5 |
2.0.5 |
5.1.0-5.1.5 |
2.1.3 |
5.2.0-5.2.1 |
2.2.0 |
5.2.2 |
2.2.1 |
5.3.0-5.3.3 |
2.3.3 |
5.4.0-5.4.3 |
2.4.3 |
为此,请激活环境,然后安装spyder-kernels
。如果使用 Anaconda,请打开终端(Windows 上的 Anaconda Prompt)并运行
conda activate ENVIRONEMENT-NAME
conda install spyder-kernels=<VERSION>
否则,请通过您创建环境的任何方式激活环境,并执行
pip install spyder-kernels==<VERSION>
对于前面两个命令,请将<VERSION>
替换为表中对应的版本。
其他依赖项问题#
如果内核显示提及其他包(如ipython
、ipykernel
、jupyter_client
、traitlets
或pyzmq
)的冗长错误回溯,则问题可能是依赖包版本过旧或不兼容。要解决此问题,请激活环境并更新关键依赖项。
在 Anaconda 环境中
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
AttributeError/ImportError#
检查错误消息的最后几行,查看是否是AttributeError
或ImportError
,或者是否指代您在当前工作目录或主文件夹中创建的文件(Windows 上的C:/Users/YOUR_USERNAME
,macOS 上的/Users/YOUR_USERNAME
,或 Linux 上的/home/YOUR_USERNAME
)。

如果是这样,则错误很可能是由于您的文件与 Python 标准库模块(例如string.py
或time.py
)同名,这会覆盖 Spyder-Kernels 尝试加载的内置模块。要解决此问题,只需将您的文件重命名为这些名称之外的其他名称,然后尝试重启内核。要检查这些模块的名称,请参阅Python 标准库文档中的列表。
代码补全/帮助不工作#
为了在编辑器中提供代码补全、帮助和实时分析,Spyder 使用 Python 语言服务器 (PyLS),这是 VSCode、Atom 和其他流行编辑器/IDE 使用的语言服务器协议规范的一个实现。大多数帮助和补全问题都超出了 Spyder 的控制范围,它们要么是 PyLS 的限制,要么是正在自省的代码的限制,但有些可以通过变通方法解决。
对象缺少文档字符串#
如果在调用提示、悬停提示或帮助窗格中没有显示任何内容,则您尝试自省的对象可能没有文档字符串。

在这种情况下,唯一的解决方案是在原始函数、方法或类的源代码中添加一个。
找不到对象#
某些对象,无论是由于用 C、Cython 或其他语言编写的;在运行时动态生成的;还是您创建的对象的某个方法,都无法在不执行代码的情况下轻易找到。

但是,一旦您在IPython 控制台中运行代码,您可能能够在其中获取关于该对象的帮助和补全。
LSP 已停止工作#
偶尔,尤其是在使用 Spyder 一段时间后,代码补全、帮助和分析可能会停止工作。如果是这种情况,您可以通过屏幕底部 Spyder 状态栏中的LSP Python项检查 LSP 状态,并通过右键单击它并选择重启 Python 语言服务器项来重新启动它。

Spyder 错误/依赖项问题#
考虑到使 LSP 工作所涉及的各种依赖项,环境中不兼容或过旧的版本可能会导致错误消息、不完整的结果,或导致帮助/分析完全无法工作。
为解决此问题,请首先尝试按照基本急救中的说明更新 Anaconda 和 Spyder。如果问题仍未解决,请更新各种相关的依赖项,使用
conda update python-language-server
插件问题#
插件完全不工作#
如果您已安装 Spyder 插件但无法看到它,请前往视图菜单的窗格子菜单,选择插件的名称,这应该会使其窗格可见。如果您在那里没有看到插件,请选择帮助菜单下的依赖项项,查看插件是否出现在底部。

如果问题插件未在依赖项对话框中列出,请检查您是否将其安装在与 Spyder 相同的环境中。如果是,则问题很可能是由依赖项问题引起的。通过在与 Spyder 相同的环境中打开 Python 控制台并输入(例如)import spyder_unittest
来测试 Spyder-Unittest` 插件,手动测试您是否可以导入该插件;此命令应该无错误运行。
如果这些方法都无法帮助您解决问题,请继续阅读下一节。
其他问题#
如果您收到提及或涉及 Spyder 插件(例如spyder-unittest
、spyder-terminal
或spyder-notebook
)的错误,或者您遇到 Spyder 插件的任何其他问题,那么首先应该尝试将 Spyder 和该插件更新到最新版本。
如果这不能解决问题,您应该检查插件的网站或存储库,看看它是否与您的 Spyder 版本兼容。
最后,如果兼容性似乎不是问题,请检查那些存储库,看看是否已经有相关问题被提出,如果没有,请在那里报告。