【问题标题】:downgrade from python 3.8.5 to python 3.6从 python 3.8.5 降级到 python 3.6
【发布时间】:2021-02-27 08:55:07
【问题描述】:

我想从 python 3.8.5 降级到 3.6,但我遇到了一些错误。 我的操作系统是 Ubuntu 20.4,conda 的版本是 4.9.2。 当我运行命令时: conda install python=3.6 我收到以下错误:

Collecting package metadata (current_repodata.json): failed
WARNING conda.exceptions:print_unexpected_error_report(1213): KeyError('pkgs_dirs')
Traceback (most recent call last):
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/exceptions.py", line 1079, in __call__
    return func(*args, **kwargs)
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/cli/main.py", line 84, in _main
    exit_code = do_call(args, p)
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/cli/conda_argparse.py", line 83, in do_call
    return getattr(module, func_name)(args, parser)
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/cli/main_install.py", line 20, in execute
    install(args, parser, 'install')
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/cli/install.py", line 261, in install
    unlink_link_transaction = solver.solve_for_transaction(
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/core/solve.py", line 114, in solve_for_transaction
    unlink_precs, link_precs = self.solve_for_diff(update_modifier, deps_modifier,
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/core/solve.py", line 157, in solve_for_diff
    final_precs = self.solve_final_state(update_modifier, deps_modifier, prune, ignore_pinned,
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/core/solve.py", line 262, in solve_final_state
    ssc = self._collect_all_metadata(ssc)
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/common/io.py", line 88, in decorated
    return f(*args, **kwds)
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/core/solve.py", line 397, in _collect_all_metadata
    _supplement_index_with_system(virtual_pkg_index)
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/core/index.py", line 163, in _supplement_index_with_system
    dist_name, dist_version = context.os_distribution_name_version
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/_vendor/auxlib/decorators.py", line 268, in new_fget
    cache[inner_attname] = func(self)
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/base/context.py", line 786, in os_distribution_name_version
    from .._vendor.distro import id, version
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/_vendor/distro.py", line 1084, in <module>
    _distro = LinuxDistribution()
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/_vendor/distro.py", line 599, in __init__
    self._lsb_release_info = self._get_lsb_release_info() \
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/_vendor/distro.py", line 943, in _get_lsb_release_info
    raise subprocess.CalledProcessError(code, cmd, stdout, stderr)
subprocess.CalledProcessError: Command 'lsb_release -a' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/exceptions.py", line 1211, in print_unexpected_error_report
    message_builder.append(get_main_info_str(error_report['conda_info']))
  File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/cli/main_info.py", line 238, in get_main_info_str
    info_dict['_' + key] = ('\n' + 26 * ' ').join(info_dict[key])
KeyError: 'pkgs_dirs'

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/exceptions.py", line 1079, in __call__
        return func(*args, **kwargs)
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/cli/main.py", line 84, in _main
        exit_code = do_call(args, p)
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/cli/conda_argparse.py", line 83, in do_call
        return getattr(module, func_name)(args, parser)
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/cli/main_install.py", line 20, in execute
        install(args, parser, 'install')
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/cli/install.py", line 261, in install
        unlink_link_transaction = solver.solve_for_transaction(
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/core/solve.py", line 114, in solve_for_transaction
        unlink_precs, link_precs = self.solve_for_diff(update_modifier, deps_modifier,
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/core/solve.py", line 157, in solve_for_diff
        final_precs = self.solve_final_state(update_modifier, deps_modifier, prune, ignore_pinned,
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/core/solve.py", line 262, in solve_final_state
        ssc = self._collect_all_metadata(ssc)
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/common/io.py", line 88, in decorated
        return f(*args, **kwds)
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/core/solve.py", line 397, in _collect_all_metadata
        _supplement_index_with_system(virtual_pkg_index)
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/core/index.py", line 163, in _supplement_index_with_system
        dist_name, dist_version = context.os_distribution_name_version
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/_vendor/auxlib/decorators.py", line 268, in new_fget
        cache[inner_attname] = func(self)
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/base/context.py", line 786, in os_distribution_name_version
        from .._vendor.distro import id, version
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/_vendor/distro.py", line 1084, in <module>
        _distro = LinuxDistribution()
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/_vendor/distro.py", line 599, in __init__
        self._lsb_release_info = self._get_lsb_release_info() \
      File "/home/sare/anaconda3/lib/python3.8/site-packages/conda/_vendor/distro.py", line 943, in _get_lsb_release_info
        raise subprocess.CalledProcessError(code, cmd, stdout, stderr)
    subprocess.CalledProcessError: Command 'lsb_release -a' returned non-zero exit status 1.

`$ /home/sare/anaconda3/bin/conda install python=3.6.0`

  environment variables:
conda info could not be constructed.
KeyError('pkgs_dirs')

An unexpected error has occurred. Conda has prepared the above report.

If submitted, this report will be used by core maintainers to improve
future releases of conda.

Would you like conda to send this report to the core maintainers?

【问题讨论】:

  • 你的意思是你想在你的系统中有多个版本的python?还是只删除 3.8.5 并安装 3.6?
  • 多个版本。目前,我有3.8.5和2.7,但无法安装3.6
  • Conda 应该可以并排安装多个版本;无需删除其他版本。
  • 如果您阅读链接的问题,您可能会发现lsb_release 命令是用 Python 3 调用的,而它是 Python 2 的命令。

标签: python python-3.x conda downgrade


【解决方案1】:

您似乎正在尝试通过 Conda 一个 Conda 环境(适用于 Python 3.8)安装 Python 3.6。

不要那样做。退出 Conda 环境,并在 3.8 环境之外创建一个新的 3.6 环境

您不能将现有的 Conda 环境降级到新的 Python 版本;特别是如果版本在主要或次要版本中有所不同。包版本与 Python 版本不匹配。它可能会奏效,但在这种情况下,这更有可能是运气而不是智慧。 Conda 的全部意义在于它会为您的系统安装适合您选择的 Python 版本的软件包。

错误原因是conda install期望系统Python版本获取一些系统信息;该 Python 版本位于 /usr/bin/python3,即 3.8 版,但由于您在与其自己版本匹配的 Conda 环境中运行它,它会尝试在那里获取已安装的包(参见回溯:它显示 anaconda3/lib/python3.8/site-packages/conda/_vendor/distro.py) : 这失败了(可能是因为 Conda 的 Python 3.8 变体不包含您的 Ubuntu 版本的详细信息)。

在当前 Conda 环境之外安装 3.6 应该让安装选择正常、系统、Python 版本,从而正常运行lsb_release

确保将您的编辑恢复为/usr/bin/lsb_release,以便再次使用#! /usr/bin/python3 -Es 运行:Python 2 可能不兼容,lsb_release 可能会失败,从而导致另一个错误,仍在安装过程中。

【讨论】:

  • 我通过命令'deactivate'退出了环境,然后我尝试安装python3.6并为此创建一个环境,同样的错误。你能一步一步告诉我命令吗?
  • 首先:您是否恢复了对/usr/bin/lsb_release 的编辑?
  • 是的,我做到了。即使我想卸载 Conda,我也会收到错误消息:收集包元数据 (current_repodata.json): failed WARNING conda.exceptions:print_unexpected_error_report(1213): KeyError('pkgs_dirs')
  • 您是否得到与您的问题相同的回溯?显示相同的subprocess.CalledProcessError 错误和相同的路径?
  • (这可能有点来回排序;通常在本地比在线更容易,所以我希望这会奏效。)
猜你喜欢
  • 2019-03-06
  • 1970-01-01
  • 2017-10-13
  • 2021-03-07
  • 1970-01-01
  • 2019-06-19
  • 2019-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多