除了常规故障排除步骤之外,一些经常报告的问题还需要更专业的解决方案。
如果您收到消息 An error occurred while starting the kernel 在 IPython控制台 ,Spyder无法在当前工作环境中启动新的Python解释器来运行您的代码。可能导致这种情况的问题有很多,但大多数问题都可以通过几个简单的步骤很快解决。
An error occurred while starting the kernel
Spyder需要受支持版本的 spyder-kernels 要显示在要在其中运行控制台的工作环境中的软件包。
spyder-kernels
默认情况下,它包含在Anaconda中,但是如果您想要在另一个Python环境或安装中运行您的代码,您需要确保它已经安装并更新到最新版本。
在下表中检查您的Spyder版本所需的Spyder-kernel版本:
斯派德
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
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.1
为此,请激活环境,然后安装 spyder-kernels 。如果使用Anaconda,请打开一个终端(Windows上的Anaconda提示符)并运行:
conda activate ENVIRONEMENT-NAME conda install spyder-kernels=<VERSION>
否则,请以您创建的任何方式激活您的环境,并执行:
pip install spyder-kernels==<VERSION>
对于前面的两个命令,请替换 <VERSION> 表中有相应的版本。
<VERSION>
如果内核显示一个很长的错误回溯,其中提到了其他包,如 ipython , ipykernel , jupyter_client , traitlets 或 pyzmq ,则问题可能是依赖项软件包的版本过期或不兼容。要解决此问题,请激活环境并更新关键依赖项。
ipython
ipykernel
jupyter_client
traitlets
pyzmq
在 Python 环境中:
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 ,或者是指您在当前工作目录或主文件夹中创建的文件 (C:/Users/YOUR_USERNAME 在Windows上, /Users/YOUR_USERNAME 在MacOS上,或 /home/YOUR_USERNAME 在Linux上)。
AttributeError
ImportError
C:/Users/YOUR_USERNAME
/Users/YOUR_USERNAME
/home/YOUR_USERNAME
如果是这样,错误很可能是因为您的文件与Python标准库模块同名,例如 string.py 或 time.py ,它覆盖Spyder-Kernels试图加载的内置模块。要解决此问题,只需将您的文件重命名为不同于这些名称之一的名称,然后尝试重新启动内核。要检查这些模块的名称,请参阅 Python standard library documentation 。
string.py
time.py
为了在编辑器中提供代码完成、帮助和实时分析,Spyder使用Python Language Server(PIRS),这是VSCode、Atom和其他流行的编辑器/IDE使用的语言服务器协议规范的实现。大多数帮助和完成问题都不在Spyder的控制范围之内,要么是Pyls的限制,要么是正在自省的代码,但有些是可以解决的。
如果调用提示、悬停提示或帮助窗格中没有显示任何内容,则您尝试自省的对象可能没有文档字符串。
在这种情况下,唯一的解决方案是在原始函数、方法或类的源代码中添加一个。
有些对象,无论是由于使用C、Cython或其他语言编写的、在运行时动态生成的,还是作为您创建的对象的方法,如果不执行代码,都很难找到。
但是,一旦您在 IPython控制台 ,您也许可以在那里获得有关该对象的帮助和完成信息。
偶尔,特别是在使用Spyder一段时间后,代码完成、帮助和分析可能会停止工作。如果是这种情况,您可以使用 LSP Python 在屏幕底部的Spyder状态栏中选择该项目,然后通过右键单击该项目并选择 Restart Python Language Server 项目。
考虑到使LSP工作所涉及的各种依赖项,环境中不兼容或过期的版本可能会导致错误消息、不完整的结果或帮助/分析根本不起作用。
要解决此问题,请首先尝试更新 Python 和Spyder,如中所述 基本急救 。如果问题仍未解决,请使用以下命令更新各种相关依赖项:
conda update python-language-server
如果您已经安装了Spyder插件,但您看不到它,请转到 Panes 的子菜单 View 菜单并选择插件的名称,这将使其窗格可见。如果您在那里没有看到插件,请选择 Dependencies 项下的项目 Help 菜单,查看插件是否出现在底部。
如果有问题的插件没有在依赖项对话框中列出,请检查您是否将其安装在与Spyder相同的环境中。如果您有,那么问题很可能是由依赖性问题引起的。测试是否可以手动导入插件,方法是在与Spyder相同的环境中打开Python控制台并键入,例如, import spyder_unittest 测试Spyder-Unittest`插件;此命令运行时应该没有错误。
import spyder_unittest
如果这些都不能帮助您解决问题,请继续下一节。
如果您收到一个提到或涉及Spyder插件的错误,例如 spyder-unittest , spyder-terminal 或 spyder-notebook ,或者如果您遇到Spyder插件的任何其他问题,那么第一个方法应该是将Spyder和插件更新到它们的最新版本。
spyder-unittest
spyder-terminal
spyder-notebook
如果这不能解决问题,您应该检查插件的网站或存储库,看看它是否与您的Spyder版本兼容。
最后,如果兼容性似乎不是问题,请检查这些存储库,看看问题是否已经打开,如果没有,请在那里报告。