更新到 Spyder 4.0.0 时遇到问题

Trouble updating to Spyder 4.0.0

我在Windows 10、64 位下。

我多次尝试使用 Anaconda Prompt 和 Anaconda Navigator 更新 Spyder 4.0.0。 它失败了。我卸载了 Anaconda 并重新安装了它。

然后我 运行 以管理员身份运行 Anaconda Prompt 并执行:

conda update spyder

Spyder的版本是3.3.6。 我试过这个命令:

conda install spyder=4.0.0

提示返回:

Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: |
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
Finding conflicts:   0%|                                                                       | 0/360 [00:00<?, ?it/s]|Examining hpack:  42%|█████████████████████████▌                                   | 151/360 [00:00<00:00, 1468.80it/s]/Examining jupyter_core:  56%|██████████████████████████████▍                       | 203/360 [00:00<00:00, 1468.80it/-
- mparing specs that have this dependency:   0%|                                                | 0/20 [00:00<?, ?it/\
Examining jupyter_core:  57%|██████████████████████████████▌                       | 204/360 [00:20<00:00, 1468.80it/s]|| mparing specs that have this dependency:  10%|████                                    | 2/20 [00:18<02:47,  9.32s/i/ |
Comparing specs that have this dependency:  55%|█████████████████████▍                 | 11/20 [01:07<00:55,  6.16s/i-
Examining tbb:  73%|███████████████████████████████████████████████▎                 | 262/360 [02:35<01:19,  1.24it/s]-Examining jedi:  81%|███████████████████████████████████████████████████▉            | 292/360 [02:35<00:54,  1.24it/- \
Examining jupyter_client:  90%|████████████████████████████████████████████████▍     | 323/360 [06:03<04:23,  7.12s/i\ \
Comparing specs that have this dependency:   7%|██▋                                     | 1/15 [00:10<02:27, 10.51s/i-
Comparing specs that have this dependency:  13%|█████▎                                  | 2/15 [00:21<02:19, 10.73s/i/ |
Comparing specs that have this dependency:  27%|██████████▋                             | 4/15 [00:31<01:25,  7.77s/i\ \
Finding conflict paths:   0%|                                                                    | 0/7 [00:00<?, ?it// -
Comparing specs that have this dependency:  73%|████████████████████████████▌          | 11/15 [01:21<00:29,  7.40s/i\ |
Finding shortest conflict path for jupyter_client[version='>=4.2']:  67%|██████████▋     | 4/6 [00:10<00:01,  1.35it/| -
Comparing specs that have this dependency:  80%|███████████████████████████████▏       | 12/15 [01:34<00:23,  7.91s/i- |
failed                                                                                                                 /
                                                                                                                       \
UnsatisfiableError: The following specifications were found to be incompatible with a past
explicit spec that is not an explicit spec in this operation (spyder):

  - spyder=4.0.0

The following specifications were found to be incompatible with each other:



Package jedi conflicts for:
spyder=4.0.0 -> python-language-server[version='>=0.31.2,<0.32.0'] -> jedi[version='>=0.14.1,<0.16']
jedi
jupyterlab_server -> notebook -> ipykernel -> ipython[version='>=4.0'] -> jedi[version='>=0.10']
anaconda==2019.10 -> jedi==0.15.1[build='py37_0|py36_0|py27_0']
ipython -> jedi[version='>=0.10']
qtconsole -> ipykernel[version='>=4.1'] -> ipython[version='>=4.0'] -> jedi[version='>=0.10']
_ipyw_jlab_nb_ext_conf -> ipywidgets -> ipython[version='>=4.0.0'] -> jedi[version='>=0.10']
jupyter_console -> ipython -> jedi[version='>=0.10']
spyder-kernels -> ipykernel -> ipython[version='>=4.0'] -> jedi[version='>=0.10']
widgetsnbextension -> notebook[version='>=4.4.1'] -> ipykernel -> ipython[version='>=4.0'] -> jedi[version='>=0.10']
jupyterlab -> notebook[version='>=4.3.1'] -> ipykernel -> ipython[version='>=4.0'] -> jedi[version='>=0.10']
jupyter -> ipykernel -> ipython[version='>=4.0'] -> jedi[version='>=0.10']
spyder=4.0.0 -> qtconsole[version='>=4.6.0'] -> ipykernel[version='>=4.1'] -> ipython[version='>=5.0'] -> jedi[version='>=0.10']
ipywidgets -> ipython[version='>=4.0.0'] -> jedi[version='>=0.10']
notebook -> ipykernel -> ipython[version='>=4.0'] -> jedi[version='>=0.10']
ipykernel -> ipython[version='>=4.0'] -> jedi[version='>=0.10']
anaconda==2019.10 -> spyder==3.3.6=py27_0 -> jedi[version='>=0.10|>=0.9']
spyder=4.0.0 -> jedi=0.14.1
Package jupyter_client conflicts for:
_ipyw_jlab_nb_ext_conf -> jupyterlab -> notebook[version='>=4.3.1'] -> nbconvert -> jupyter_client[version='>=4.2']
widgetsnbextension -> notebook[version='>=4.4.1'] -> nbconvert -> jupyter_client[version='>=4.2']
jupyterlab -> notebook[version='>=4.3.1'] -> nbconvert -> jupyter_client[version='>=4.2']
ipywidgets -> widgetsnbextension[version='>=3.3.0,<3.4.0'] -> notebook[version='>=4.4.1'] -> jupyter_client[version='>=5.2.0|>=5.3.1|>=5.3.4']
jupyterlab_server -> notebook -> jupyter_client[version='>=5.2.0|>=5.3.1|>=5.3.4']
anaconda==2019.10 -> ipykernel==4.10.0=py27_0 -> jupyter_client[version='>=4.1|>=5.2.0|>=5.2.3|>=5.3.1']
jupyter -> ipykernel -> jupyter_client[version='>=4.1|>=4.2|>=5.2.0|>=5.3.1|>=5.3.4']
ipywidgets -> widgetsnbextension[version='>=3.3.0,<3.4.0'] -> notebook[version='>=4.4.1'] -> nbconvert -> jupyter_client[version='>=4.2']
spyder=4.0.0 -> qtconsole[version='>=4.6.0'] -> ipykernel[version='>=4.1'] -> jupyter_client
jupyterlab -> notebook[version='>=4.3.1'] -> jupyter_client[version='>=5.2.0|>=5.3.1|>=5.3.4']
spyder=4.0.0 -> nbconvert -> jupyter_client[version='>=4.1|>=4.2|>=5.3.4']
ipywidgets -> ipykernel[version='>=4.5.1'] -> jupyter_client
anaconda==2019.10 -> jupyter_client==5.3.3[build='py27_1|py36_1|py37_1']
spyder-kernels -> ipykernel -> jupyter_client
jupyter_console -> jupyter_client
spyder-kernels -> jupyter_client[version='>=5.2.3|>=5.3.4']
notebook -> nbconvert -> jupyter_client[version='>=4.2']
jupyter_client
notebook -> jupyter_client[version='>=5.2.0|>=5.3.1|>=5.3.4']
nbconvert -> jupyter_client[version='>=4.2']
_ipyw_jlab_nb_ext_conf -> ipywidgets -> ipykernel[version='>=4.5.1'] -> jupyter_client[version='>=5.2.0|>=5.3.1|>=5.3.4']
jupyterlab_server -> notebook -> nbconvert -> jupyter_client[version='>=4.2']
widgetsnbextension -> notebook[version='>=4.4.1'] -> jupyter_client[version='>=5.2.0|>=5.3.1|>=5.3.4']
ipykernel -> jupyter_client
qtconsole -> ipykernel[version='>=4.1'] -> jupyter_client
qtconsole -> jupyter_client[version='>=4.1']
Package jupyter_core conflicts for:
anaconda==2019.10 -> jupyter_core==4.5.0=py_0
spyder=4.0.0 -> nbconvert -> jupyter_client[version='>=4.2'] -> jupyter_core[version='>=4.6.0']
nbconvert -> jupyter_client[version='>=4.2'] -> jupyter_core[version='>=4.6.0']
jupyterlab -> notebook[version='>=4.3.1'] -> jupyter_core[version='>=4.4.0|>=4.6.0']
ipywidgets -> ipykernel[version='>=4.5.1'] -> jupyter_client -> jupyter_core[version='>=4.4.0|>=4.6.0']
anaconda-project -> anaconda-client -> nbformat[version='>=4.4.0'] -> jupyter_core
jupyter_core
anaconda-navigator -> anaconda-client[version='>=1.6'] -> nbformat[version='>=4.4.0'] -> jupyter_core
jupyter -> notebook -> jupyter_core[version='>=4.4.0|>=4.6.0']
_ipyw_jlab_nb_ext_conf -> jupyterlab -> notebook[version='>=4.3.1'] -> jupyter_core[version='>=4.4.0|>=4.6.0']
spyder-kernels -> jupyter_client[version='>=5.2.3'] -> jupyter_core[version='>=4.6.0']
widgetsnbextension -> notebook[version='>=4.4.1'] -> jupyter_core[version='>=4.4.0|>=4.6.0']
notebook -> jupyter_core[version='>=4.4.0|>=4.6.0']
ipywidgets -> nbformat[version='>=4.2.0'] -> jupyter_core
anaconda-client -> nbformat[version='>=4.4.0'] -> jupyter_core
nbformat -> jupyter_core
jupyter_console -> jupyter_client -> jupyter_core[version='>=4.6.0']
anaconda==2019.10 -> jupyter_client==5.3.3=py27_1 -> jupyter_core[version='>=4.4.0']
qtconsole -> jupyter_core
ipykernel -> jupyter_client -> jupyter_core[version='>=4.6.0']
spyder=4.0.0 -> nbconvert -> jupyter_core
jupyter_client -> jupyter_core[version='>=4.6.0']
nbconvert -> jupyter_core
jupyterlab_server -> notebook -> jupyter_core[version='>=4.4.0|>=4.6.0']
qtconsole -> jupyter_client[version='>=4.1'] -> jupyter_core[version='>=4.6.0']
Package spyder-kernels conflicts for:
spyder=4.0.0 -> spyder-kernels[version='>=1.8.1,<2.0.0']
spyder-kernels
anaconda==2019.10 -> spyder-kernels==0.5.2[build='py37_0|py36_0|py27_0']
anaconda==2019.10 -> spyder==3.3.6=py27_0 -> spyder-kernels[version='>=0.5.0,<1']
Package qtconsole conflicts for:
anaconda==2019.10 -> qtconsole==4.5.5=py_0
jupyter -> qtconsole
anaconda==2019.10 -> jupyter==1.0.0=py27_7 -> qtconsole[version='>=4.2']
spyder=4.0.0 -> qtconsole[version='>=4.6.0']
qtconsole

启动Anaconda Navigator时,Spyder版本还在3.3.6

我缺少什么才能使 Spyder 的最新版本受益?

编辑 1:

当我尝试使用 Anaconda Navigator 时,它显示:

spyder 4.0.0 cannot be installed on this environment

它建议安装其他环境,但我希望更新 Spyder,而不是安装在其他地方。

编辑 2: 我成功地将 conda 更改为 4.6,但出现了这两个错误:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\brichard\AppData\Local\Continuum\anaconda3\Menu\spyder_shortcut.jsodone

和:

CondaError: Cannot link a source that does not exist. C:\Users\brichard\AppData\Local\Continuum\anaconda3\Scripts\conda.exe 
Running `conda clean --packages` may resolve your problem.

conda clean --packages 命令没有帮助,因为在执行后出现相同的错误。

(这里是 Spyder 维护者) 其他用户报告说您需要 运行

conda update anaconda

然后

conda install spyder=4

成功更新到版本 4。

我设法解决了这个问题,这可能是由于在同一个 root 环境 中保留了太多包而导致的。 首先,按照最近 issue on the conda repository:

中的建议尝试降级 conda
conda install -n root conda=4.6

之后,再给Spyder一次机会:

conda install spyder=4.0.0

如果这不起作用,我相信您可以像我一样解决问题 - 通过 创建新环境(例如使用 Anaconda Navigator)和直接从那里安装 Spyder 4.0.0.

我也无法在 Win x64 上将 Spyder 更新到 v4.0.0;但我找到了解决办法。

关于我的设置的一句话:我使用 Miniconda 和一个 conda 环境,其中 conda-forge 作为顶级通道和设置 channel_priority: strict(根据 conda-forge 的建议)。这导致 conda 考虑来自 conda-forge 频道的包。

我为我的活动环境禁用了严格的通道优先级(将来可能不需要使用 conda v5.0+ [conda-forge]):

conda config --env --set channel_priority disabled

现在终于可以将 Spyder 更新到 v4.0.0:

conda update spyder

conda 似乎需要以下软件包(它从 defaults/anaconda 频道获取): blas-1.0,jupyter_client-5.3.4,pluggy-0.13.1,python-3.7.5,scipy-1.3.2。 jedi 被降级 (0.15.1-py37_0 --> 0.14.1-py37_0).

仅供参考:我还考虑了其​​他答案:

  • - 问题:我有 Miniconda,不想要与 anaconda.
  • 关联的所有其他包
  • - 我尝试降级 conda - 没有解决问题。

顺便说一句:仅使用 Spyder v4.0.0(及其依赖项)创建一个新的干净环境也仅适用于严格的通道优先级 disabled(使用 conda-forge 时),即,这个不起作用:

conda create -n spyder -c conda-forge --strict-channel-priority spyder=4.0.0

如果您从具有 strict channel_priority:

的环境中执行以下命令,它 也将不起作用
conda create -n spyder -c conda-forge spyder=4.0.0

(你需要先 disable channel_priority

我刚刚在我的电脑上安装了 Anaconda。因此,在 Anaconda 命令提示符下执行以下操作对我有用。 Spyder 以及许多其他软件已更新至 4.0.0。

conda update anaconda

我使用了以下内容:

conda update anaconda

然后

conda update spyder
conda install spyder=4.0.1

成功更新到版本 4.0.1

对于那些试图升级到 Spyder 4 并在 Windows 中使用 conda 环境的人的附加说明 10。蜘蛛内核。无论 (1) 我是否在新环境或基础环境中安装了 Spyder,以及 (2) 即使我随后通过 conda 安装了 spyder-kernels,都会发生这种情况。

我尝试遵循上面给出的建议并且已经安装了 Anaconda(通过 windows 安装程序)但是当我尝试时:

conda update anaconda

在基础环境中找不到Anaconda。所以我还是使用 conda 安装了 Anaconda(尽管这对我来说似乎有点递归):

conda install anaconda

之后我可以通过以下方式更新 Anaconda:

conda update anaconda

一旦我这样做了,我就能够从基本环境(已经安装)中 运行 Spyder 4,并且我得到了一个可以工作的 Ipython 内核。

然后我可以从基本环境打开 Spyder 并使用 Spyder 菜单,工具 -> 首选项 -> Python 解释器,我可以设置我想要的 conda 环境,例如, C:\Users<用户名>\Anaconda3\envs\myenv\python.exe

然后,为了让 Spyder 在我想工作的 conda 环境中创建一个 Ipython 内核,我必须在这个环境中安装 spyder-kernels,所以,我启动了一个新的 Anaconda提示,并且:

conda activate myenv

conda install spyder-kernels

最后,回到 Spyder,我重新启动了内核 (Ctrl + .)。这给了我一个正常运行的 Ipython 内核,并查看 Spyder window 底部的状态栏,我可以看到我在 myenv 环境中。

所以现在我可以使用 Spyder IDE(从基础环境启动它)但能够在以前创建的 conda 环境中工作。它还避免了必须将完整的 Spyder 安装到我创建的每个环境中(但确实意味着必须将 spyder-kernels 安装到每个环境中)。

我在尝试时遇到了同样的问题

conda install spyder=4.1.2

然后我做了下面的操作,成功了!

conda config --set allow_conda_downgrades true
conda install conda=4.6.14

我通过卸载 Spyder 然后按特定版本安装解决了这个问题:

conda uninstall spyder
conda install spyder=4.1.5