代码之家  ›  专栏  ›  技术社区  ›  Ymareth

conda create语法中的细微错误将安装补丁=0版本的python

  •  1
  • Ymareth  · 技术社区  · 11 月前

    我正在创建一个没有额外软件包的新conda环境。

    值得注意的是,安装的python解释器版本有所不同,只是对 conda创建 语法。。。

    conda create --name test python=3.11
    

    …按预期安装python 3.11.9。

    但是,在指定python版本时,请使用双==而不是单=。。。

    conda create --name test python==3.11
    

    …不会抛出任何错误,但会创建一个包含python 3.11.0的环境,而不是我所期望的3.11.9。

    这在3.9、3.10、3.11和3.12版本中是一致的,都安装了补丁版本0。

    我假设double==不是正确的语法,这不是预期的行为,但这并没有被发现,而且肯定让我困惑了一段时间。

    Windows 10,conda版本23.11.0

    1 回复  |  直到 11 月前
        1
  •  1
  •   simon    11 月前

    这绝对是期望的行为,而不是错误:关于版本号的规范 Conda Cheat Sheet 举个例子:

    约束类型 规范 结果
    模糊的 numpy=1.11 1.11.0、1.11.1、1.11.2、1.11.18等。
    精确 numpy==1.11 1.11.0

    同样,正如@FlyingTeller所指出的那样 Conda Package Specification (第 命令行匹配规范示例 )conda文档中给出了以下示例:

    例子 含义
    conda install numpy=1.11 模糊约束numpy=1.11匹配1.11、1.11.0、1.11.1、1.11.2、1.11.18等。
    conda install numpy==1.11 确切的约束numpy==1.11匹配1.11、1.11.0、1.11.0.0,以此类推。

    可以说,这可以用 conda create 命令本身,在撰写本文时,找不到此类文档。