如何在单个 Conda 环境上安装两个版本的 Python?

问题描述 投票:0回答:2

我需要一个包含 两个版本的 python(3.5.3 和 3.7.1)的 conda 环境。

是否可以在单个 conda 环境中安装多个 python 版本? 如果是的话,我该怎么做?

python anaconda conda python-venv miniconda
2个回答
6
投票

创建多个环境

请花时间阅读 Conda 文档,其中涵盖了 使用不同的 Python 版本

不能在同一环境中安装不同的Python版本。正如 @Grismar 评论的那样,环境的核心目的是将不同的 Python 安装彼此隔离。相反,为每个 Python 版本创建一个单独的环境(或者更好的是为每个项目创建一个单独的环境):

# v3.5.3 environment (name is arbitrary)
conda create -n python3_5_3 python=3.5.3  # also include additional packages here

# v3.7.1 env
conda create -n python3_7_1 python=3.7.1

然后激活以使用选择的环境:

conda activate python3_7_1
python

运行多个Python进程

@Egret 评论说 OP 可能需要在单个上下文中运行两个不同版本的代码。然而,要求在一个环境中共同安装这两个版本会导致 XY 问题 - 不是问如何解决问题,而是问如何实现该问题的(可能不合适)解决方案。

如果是这种情况,请参阅以下有关如何通过子进程在多个环境中执行的相关答案:

也就是说,我认为惯用的解决方案是使用多个环境并在其中适当地编排执行。遗漏的困难部分是这些答案是跨进程交换重要的数据类型(例如,通过序列化),但我认为这超出了本线程的范围。


测试与 Conda 和 Mamba 的共同安装

在我看来,简单地尝试使用 Conda 安装两者并不会给出明显的错误:

$ conda create -n snakes python=3.5.3 python=3.7.1
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - python[version='3.5.3.*,3.7.1.*']

然而,Mamba 似乎给出了更明智的反馈(而且更快):

$ mamba create -n snakes python=3.5.3 python=3.7.1

                  __    __    __    __
                 /  \  /  \  /  \  /  \
                /    \/    \/    \/    \
███████████████/  /██/  /██/  /██/  /████████████████████████
              /  / \   / \   / \   / \  \____
             /  /   \_/   \_/   \_/   \    o \__,
            / _/                       \_____/  `
            |/
        ███╗   ███╗ █████╗ ███╗   ███╗██████╗  █████╗
        ████╗ ████║██╔══██╗████╗ ████║██╔══██╗██╔══██╗
        ██╔████╔██║███████║██╔████╔██║██████╔╝███████║
        ██║╚██╔╝██║██╔══██║██║╚██╔╝██║██╔══██╗██╔══██║
        ██║ ╚═╝ ██║██║  ██║██║ ╚═╝ ██║██████╔╝██║  ██║
        ╚═╝     ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝╚═════╝ ╚═╝  ╚═╝

        mamba (0.11.1) supported by @QuantStack

        GitHub:  https://github.com/mamba-org/mamba
        Twitter: https://twitter.com/QuantStack

█████████████████████████████████████████████████████████████


Looking for: ['python=3.5.3', 'python=3.7.1']

conda-forge/osx-64       Using cache
conda-forge/noarch       Using cache
pkgs/main/osx-64         Using cache
pkgs/main/noarch         Using cache
pkgs/r/osx-64            Using cache
pkgs/r/noarch            Using cache

Encountered problems while solving:
  - cannot install both python-3.7.1-h145921a_1000 and python-3.5.3-0

-1
投票

我在同一环境中有两个不同的版本 [1]:https://i.stack.imgur.com/ZMU8k.png

我在一个环境中有两个版本的Python。 当我输入 python 时,它给我 python 版本 3.8.0 当我输入 python3 时,它给我 python 版本 3.9.1

© www.soinside.com 2019 - 2024. All rights reserved.