conda:启动 spyder 时缺少依赖项(cahe 问题?)

Posted

技术标签:

【中文标题】conda:启动 spyder 时缺少依赖项(cahe 问题?)【英文标题】:conda: Missing dependencies when starting spyder (cahe issues?) 【发布时间】:2021-12-03 11:57:44 【问题描述】:

我(试图)通过 anaconda 安装 spyder5(用于开发 python 程序)。 启动 spyder 时,出现 2 个依赖项失败:

You have missing dependencies!
#Mandatory:
jedi =0.17.2:0.18.0 (NOK)
parso =0.7.0:0.8.2 (NOK)

然而,

conda list

回答:

...
jedi                      0.17.2           py38h06a4308_1
...
parso                     0.7.0                      py_0
...

这似乎表明我的 conda 环境中安装了正确的版本。 “谷歌搜索”有点把我带到this post,@ccordoba12 指出这个问题可以通过删除来解决: C:\Users\AppData\Roaming\Python

这当然是假设窗户。由于我在linux上运行,我无法尝试

所以我的问题是:

    有什么问题(!)? 如果 python (...) 像这似乎表明的那样缓存包,这不是违背了 conda 的目标吗? 假设这个缓存确实是问题所在,我怎样才能删除 linux 上的缓存并在加载不同的 conda env 时自动执行该操作。

谢谢!

【问题讨论】:

【参考方案1】:

问题可能是

您安装了不同版本的 python

不知何故,Conda 无法安装它们 在 Conda 中有一种巧妙的方法可以删除缓存

用法:conda clean [-h] [-a] [-i] [-p] [-t] [-f] [-c TEMPFILES [TEMPFILES ...]] [-d] [--json] [-q] [-v] [-y]

你可以使用的地方

    -a, --all
Remove index cache, lock files, unused cache packages, and tarballs.

    -i, --index-cache
Remove index cache.

【讨论】:

遗憾的是,所有的 clean 命令都没有帮助。 conda 仅列出 python3.8.8。 (不确定这与其他包管理器(例如 apt)安装的 python 有何关系:我可以运行 python2 并获取 python2.7...)【参考方案2】:

对 spyder 进行 strace 显示它正在从 ~/.local/lib/python3.8 打开东西。

删除此目录(实际上是重命名,以防万一),解决了问题... ...如果它可以帮助别人。

不确定 python 何时创建此 lib 目录,以及 conda 应该如何处理这些“缓存”

【讨论】:

当使用 --user 标志时,Pip 会在该目录中安装包。强烈建议 Conda 用户不要使用该标志,是的,删除/重命名它是个好主意。如果包在用户级或系统级安装中泄漏,Conda 无法确保明确定义的行为。

以上是关于conda:启动 spyder 时缺少依赖项(cahe 问题?)的主要内容,如果未能解决你的问题,请参考以下文章

在 Ubuntu18 上打开 Spyder3 时缺少依赖项导致 Keyring 错误?

Spyder 5缺少依赖项-spyder_kernels版本错误[关闭]

为啥 VSCode 在启动调试器之前不激活 conda?

conda install -c conda-forge opencv 后 Spyder 无法启动

由于 python.app 错误,conda 更新后无法启动 Spyder

如何使用 conda 环境为 anaconda spyder 设置不同的桌面启动器?