conda无法安装python=3.7的虚拟环境

创建一个python=3.7的虚拟环境

conda create -n py37 python=3.7

出现错误

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=3.7

Current channels:

To search for alternate channels that may provide the conda package you're
looking for, navigate to

https://anaconda.org

and use the search bar at the top of the page.

查看channel中可安装python的版本

conda search python

发现channel中最低版本为3.8.5

img


截屏2022-01-17 下午10.00.27.png

尝试寻找原因

https://stackoverflow.com/questions/70205633/cannot-install-python-3-7-on-osx-arm64
当Apple Silicon投放市场时,Python 3.8已经发布了大约一年的时间,因此用于osx-arm64的Python 3.7构建从来不是Conda Forge常规构建矩阵的一部分。
在Apple Silicon系统上使用3.7的直接替代方法是使用Rosetta模拟x86_64,或者使用容器系统,例如Docker。
长期来看,您可以尝试请求python-feedstock包含osx-arm64的3.7版本。然而,从技术上讲,3.7.12(2021年9月)是最终的特性版本,现在已经进入了仅维护阶段(参见PEP 537)。此外,其他构建特定于python版本的变体的包不会为osx-arm64构建,因此即使有python=3.7,这些包也不会在那里(至少不会通过Conda)。基本上,我不认为有人会接受这个。

仍想要问

上面的这个解释没太看懂,是跟苹果系统的版本有关系吗?那应该怎么样才能构建3.7的虚拟环境呢?

以下是一些查到的解决方法,与这个问题相关,但没有解决我的问题:

https://stackoverflow.com/questions/56850972/why-conda-cannot-create-environment-with-python-3-4-installed-in-it

感觉题主应该是用罗赛塔转译的终端里面安装Python3.7来解决的是吗?
在题主贴出的Stack Overflow回答里面,我看到一个解决办法,就是转换成X86架构来运行这个。

## create empty environment
conda create -n py37

## activate
conda activate py37

## use x86_64 architecture channel(s)
conda config --env --set subdir osx-64

## install python, numpy, etc. (add more packages here...)
conda install python=3.7

不同操作系统芯片使用的指令集不同,这个是会影响到软件的运行的,如果某个版本软件没有适配,就可能无法正常使用。
当前主流的是x86_64和aarch64,这些平台python适配久且成熟。苹果的M1由于出来的晚,好多都不适配
如果是短期内使用,可以去一些平台免费试用一些云主机,在里面尝试

参考

我也是遇到了同样的问题,如果解决了 可以分享一下 谢谢