首页 > 解决方案 > 更新 ipykernel 或其他任何东西都会导致链接错误和回滚

问题描述

conda 更新 ipykernel -v

产生以下响应。通过 anaconda 提示符对任何软件包进行任何更新或安装都是一样的。以管理员身份运行。

附带说明一下,IDLE 和 pip 往往更容易使用,但我宁愿使用 anaconda。

我试过“conda clean all”和“conda update all”都无济于事。

Executing transaction: ...working... ===> UNLINKING PACKAGE: defaults::ipykernel-4.10.0-py37_0 <===
  prefix=D:\Anaconda3


===> LINKING PACKAGE: defaults::ipykernel-5.1.1-py37h39e3cac_0 <===
  prefix=D:\Anaconda3
  source=D:\Anaconda3\pkgs\ipykernel-5.1.1-py37h39e3cac_0


$ C:\WINDOWS\system32\cmd.exe /d /c D:\Anaconda3\.tmpsme8hq3b.bat
==> cwd: D:\Anaconda3\Scripts <==
==> exit code: 1 <==
==> stdout <==

==> stderr <==
'chcp' is not recognized as an internal or external command,
operable program or batch file.
'chcp' is not recognized as an internal or external command,
operable program or batch file.
'chcp' is not recognized as an internal or external command,
operable program or batch file.



An error occurred while installing package 'defaults::ipykernel-5.1.1-py37h39e3cac_0'.
LinkError: post-link script failed for package defaults::ipykernel-5.1.1-py37h39e3cac_0
running your command again with `-v` will provide additional information
location of failed script: D:\Anaconda3\Scripts\.ipykernel-post-link.bat
==> script messages <==
<None>

Attempting to roll back.


===> REVERSING PACKAGE LINK: defaults::ipykernel-5.1.1-py37h39e3cac_0 <===
  prefix=D:\Anaconda3


failed
An error occurred while installing package 'defaults::ipykernel-5.1.1-py37h39e3cac_0'.
LinkError: post-link script failed for package defaults::ipykernel-5.1.1-py37h39e3cac_0
running your command again with `-v` will provide additional information
location of failed script: D:\Anaconda3\Scripts\.ipykernel-post-link.bat
==> script messages <==
<None>

Attempting to roll back.


Rolling back transaction: ...working... ===> REVERSING PACKAGE UNLINK: defaults::ipykernel-4.10.0-py37_0 <===
  prefix=D:\Anaconda3


done
Traceback (most recent call last):
  File "D:\Anaconda3\lib\site-packages\conda\core\link.py", line 1079, in run_script
    subprocess_call(command_args, env=env, path=dirname(path))
  File "D:\Anaconda3\lib\site-packages\conda\gateways\subprocess.py", line 85, in subprocess_call
    output=formatted_output)
subprocess.CalledProcessError: Command '['C:\\WINDOWS\\system32\\cmd.exe', '/d', '/c', 'D:\\Anaconda3\\.tmpsme8hq3b.bat']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\Anaconda3\lib\site-packages\conda\core\link.py", line 649, in _execute_post_link_actions
    activate=True)
  File "D:\Anaconda3\lib\site-packages\conda\core\link.py", line 1095, in run_script
    raise LinkError(message)
conda.exceptions.LinkError: post-link script failed for package defaults::ipykernel-5.1.1-py37h39e3cac_0
running your command again with `-v` will provide additional information
location of failed script: D:\Anaconda3\Scripts\.ipykernel-post-link.bat
==> script messages <==
<None>


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\Anaconda3\lib\site-packages\conda\core\link.py", line 558, in _execute
    cls._execute_post_link_actions(pkg_idx_tracked, axngroup)
  File "D:\Anaconda3\lib\site-packages\conda\core\link.py", line 664, in _execute_post_link_actions
    reverse_excs,
conda.CondaMultiError: post-link script failed for package defaults::ipykernel-5.1.1-py37h39e3cac_0
running your command again with `-v` will provide additional information
location of failed script: D:\Anaconda3\Scripts\.ipykernel-post-link.bat
==> script messages <==
<None>



During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\Anaconda3\lib\site-packages\conda\exceptions.py", line 1003, in __call__
    return func(*args, **kwargs)
  File "D:\Anaconda3\lib\site-packages\conda\cli\main.py", line 84, in _main
    exit_code = do_call(args, p)
  File "D:\Anaconda3\lib\site-packages\conda\cli\conda_argparse.py", line 82, in do_call
    exit_code = getattr(module, func_name)(args, parser)
  File "D:\Anaconda3\lib\site-packages\conda\cli\main_update.py", line 20, in execute
    install(args, parser, 'update')
  File "D:\Anaconda3\lib\site-packages\conda\cli\install.py", line 275, in install
    handle_txn(unlink_link_transaction, prefix, args, newenv)
  File "D:\Anaconda3\lib\site-packages\conda\cli\install.py", line 304, in handle_txn
    unlink_link_transaction.execute()
  File "D:\Anaconda3\lib\site-packages\conda\core\link.py", line 241, in execute
    self._execute(tuple(concat(interleave(itervalues(self.prefix_action_groups)))))
  File "D:\Anaconda3\lib\site-packages\conda\core\link.py", line 587, in _execute
    rollback_excs,
conda.CondaMultiError: post-link script failed for package defaults::ipykernel-5.1.1-py37h39e3cac_0
running your command again with `-v` will provide additional information
location of failed script: D:\Anaconda3\Scripts\.ipykernel-post-link.bat
==> script messages <==
<None>

标签: pythonwindows-10anaconda64-bitconda

解决方案


为了解决这个问题,我卸载了我现有的 python 3.7 和 anaconda。我重新安装了 anaconda,但有一个关键区别。

在 Anaconda 安装期间,我将 Anaconda 注册为我的默认 Python 3.7。这可以让 Visual Studio、PyDev 和其他程序自动检测 Anaconda 作为要使用的主要版本。

问题与此类似: Running setup.py install for fbprophet ... 错误


推荐阅读