【问题标题】:Conda unable to create different Python version environmentConda 无法创建不同的 Python 版本环境
【发布时间】:2022-08-21 03:10:48
【问题描述】:

我正在尝试创建一个新的 conda Python 2.7 环境。 为此,我在终端中输入:

conda create -n my_env_name python==2.7

激活创建的环境(conda activate my_env_name)并检查 Python 版本(python --version)后,我得到了Python 3.10.2

无论我尝试在新环境中使用哪个 Python 版本,我总是会得到Python 3.10.2检查 Python 版本时回答。

知道什么是错的以及如何解决这个问题吗?

(我正在研究 iMAC、Chip Apple M1、macOS Monterey 12.1)

(在我的旧机器上执行相同操作后,一切正常,在新创建的环境中检查 Python 版本后,我得到了 Python 2.7.18。)

这里有一些额外的信息。

  1. 激活 env 时的命令:
    • which python 给 - /opt/local/bin/python
    • type python 给出-python 是 /opt/local/bin/python
    • echo $PATH给-/opt/local/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/uros/Desktop/iraf-main/unix/hlib/ecl.sh://Users/uros /.iraf/bin:/opt/anaconda3/envs/py27/bin:/opt/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/ X11/bin:/库/Apple/usr/bin
    1. 未激活 env 时的命令:
    • which python 给 - /opt/local/bin/python
    • type python 给出-python 是 /opt/local/bin/python
    • echo $PATH给-/opt/local/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/uros/Desktop/iraf-main/unix/hlib/ecl.sh://Users/uros /.iraf/bin:/opt/anaconda3/bin:/opt/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin: /图书馆/苹果/usr/bin

    运行conda list 后输出是这样的:

  • 这是否意味着我需要安装 anaconda2/miniconda2?
  • @user16454053 你能检查一下 which pythontype python 报告什么时候你的环境是活跃的,什么时候不活跃?
  • @FlyingTeller Doh!果然,你是对的。 conda create -n p27 python==2.7.18 后跟 conda activate p27python --version 刚刚给了我 2.7.18。我收回一切!
  • @user16454053 conda create -n p27 python==2.7 给了我一个 PackagesNotFoundErrorpython==2.7 找不到。我必须指定python==2.7.18 才能使其真正起作用。您在尝试创建环境时是否收到任何错误消息?
  • 不,我在创建环境时没有收到任何错误。

标签: python conda


【解决方案1】:

TL;博士使用 conda3,完全指定 Python 2.7 版本,例如 2.7.18。

当我尝试在我自己的 conda3 环境中重现您的命令时,出现此错误:

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

  - python==2.7

但是,当我完全指定 Python 2.7 的版本时,它对我有用:

conda create -n p27 python==2.7.18
conda activate p27
python --version

表明 Python 2.7.18 是该环境中的默认 Python。

替代方案:使用 conda2

对于 Anaconda3/Miniconda3,默认 Python 为 Python 3.x,而对于 Aanconda2/Miniconda2,默认 Python 为 Python 2.7.x。在您的旧机器上,您可能已经安装了 conda2,这可以解释它为什么起作用。

不过,感谢@FlyingTeller 指出 conda2 不是必需的。

【讨论】:

  • 我只是运行与您相同的命令,但对我不起作用。 Python版本又是3.10.2
  • conda create 命令是否输出任何错误消息?您的路径上是否还有其他 Python 实例,如 which python 和检查 $PATH 可能会揭示的那样?
  • 不会产生任何错误。输入 which python 我得到 /opt/local/bin/python 后。
  • conda activate 是否实际上在 $PATH 前面添加了新环境的 bin 文件夹?
  • /opt/local/bin/python 是您的系统范围的 Python,而不是 conda 安装的那个。我认为您需要阅读有关在新机器上正确激活 conda 的内容。
【解决方案2】:

我的 M1 Mac 也有同样的问题。

事实证明when working with python versions below 3.8 according to this post here 不支持运行 osx-arm64。他们详细介绍了如何解决此问题。

您也可以关注 Danny Cunningham How to Manage Conda Environments on an Apple Silicon M1 Mac Manage both ARM64 and x86 Python environments using conda 的这篇博文

在你的情况下,它应该是这样的:

CONDA_SUBDIR=osx-64 conda create -n my_env_27_x86 python=2.7 

我希望这有帮助,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多