我需要一个包含 两个版本的 python(3.5.3 和 3.7.1)的 conda 环境。
是否可以在单个 conda 环境中安装多个 python 版本? 如果是的话,我该怎么做?
请花时间阅读 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
@Egret 评论说 OP 可能需要在单个上下文中运行两个不同版本的代码。然而,要求在一个环境中共同安装这两个版本会导致 XY 问题 - 不是问如何解决问题,而是问如何实现该问题的(可能不合适)解决方案。
如果是这种情况,请参阅以下有关如何通过子进程在多个环境中执行的相关答案:
也就是说,我认为惯用的解决方案是使用多个环境并在其中适当地编排执行。遗漏的困难部分是这些答案是跨进程交换重要的数据类型(例如,通过序列化),但我认为这超出了本线程的范围。
在我看来,简单地尝试使用 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