为啥我在运行 Python 时在 Spyder 中收到“启动内核时发生错误”?

Posted

技术标签:

【中文标题】为啥我在运行 Python 时在 Spyder 中收到“启动内核时发生错误”?【英文标题】:Why am I getting "An error ocurred while starting the kernel" in Spyder while running Python?为什么我在运行 Python 时在 Spyder 中收到“启动内核时发生错误”? 【发布时间】:2021-10-11 00:52:28 【问题描述】:

我在我的 Windows 8.1 系统中安装了 Anaconda (python 3.7)。但是,在从 Spyder 控制台运行我的 Python 代码时,我收到以下错误:

An error occurred while starting the kernel

我检查了PATH环境变量,一切正常。

这是尝试执行代码时在控制台中收到的详细错误:

Traceback(最近一次调用最后一次):

文件“C:\ProgramData\Anaconda3\lib\site-packages\spyder\plugins\ipythonconsole.py”,第 1572 行,在 create_kernel_manager_and_kernel_client 中

kernel_manager.start_kernel(stderr=stderr_handle)

文件“C:\ProgramData\Anaconda3\lib\site-packages\jupyter_client\manager.py”,第 240 行,在 start_kernel 中

self.write_connection_file()

文件 "C:\ProgramData\Anaconda3\lib\site-packages\jupyter_client\connect.py", 第 547 行,在 write_connection_file 中

kernel_name=self.kernel_name

文件 "C:\ProgramData\Anaconda3\lib\site-packages\jupyter_client\connect.py", 第 212 行,在 write_connection_file 中

以secure_write(fname) 为f:

文件“C:\ProgramData\Anaconda3\lib\contextlib.py”,第 112 行,输入

返回下一个(self.gen)

文件“C:\ProgramData\Anaconda3\lib\site-packages\jupyter_client\connect.py”,第 102 行,在secure_write中

with os.fdopen(os.open(fname, open_flag, 0o600), mode) as f:

PermissionError: [Errno 13] Permission denied: 'C:\Users\bharat\AppData\Roaming\jupyter\runtime\kernel????bcba4480cd.json'

【问题讨论】:

【参考方案1】:

这里是 Spyder 维护者)要解决这个问题,请打开 Anaconda Prompt 并在那里运行

conda update anaconda
conda install jupyter_client=5.3.4

【讨论】:

感谢一百万,坚持了好几个小时。如果它是一个已知错误,为什么还没有解决呢?我在 Windows 上安装干净的 anaconda 后得到它 这在我的情况下不起作用。当我第一次安装 Anaconda Spyder 在从 Base 运行时工作,但现在从环境运行时出现此错误。【参考方案2】:

以管理员身份运行 Spyder 为我解决了同样的问题。

【讨论】:

这不是一个好的答案,因为您可能会通过运行 os.remove 来清除文件系统。

以上是关于为啥我在运行 Python 时在 Spyder 中收到“启动内核时发生错误”?的主要内容,如果未能解决你的问题,请参考以下文章

win下opencv为啥在spyder上运行不了了

为啥我在终端上安装的软件包不能在 Spyder 上运行

为啥 Miniconda 没有运行最新版本的 Spyder?

为啥我在第二次运行测试时在 Mongoose 中收到错误“一旦编译后无法覆盖模型”?

为啥我在第二次运行测试时在 Mongoose 中收到错误“一旦编译后无法覆盖模型”?

为啥我在安装sql2005时在解决那个com功能警告时在dos时为啥显示msdtc不是内部命令啊 怎么解决?