【问题标题】:Is it possible to lock versions of packages in Anaconda?是否可以在 Anaconda 中锁定软件包的版本?
【发布时间】:2018-07-21 10:49:35
【问题描述】:

我在 Windows xp 上安装了 Anaconda 3 2.3.0。它应该是last version of anaconda to support windows xp,因为它包含python 3.4.3,而python 3.4.x 是支持windows xp 的最后一个python 版本。

使用

安装包时

conda 安装

,它的依赖项之一是将 conda 更新到 conda 4.x。 conda 4.x 在运行 conda install 时在命令行中崩溃。这使得 anaconda 无法使用,我卸载了 anaconda。

我的问题,是否可以锁定包的版本?对于两个用例:

  • 锁定并忘记:对于我不希望它们更新的软件包,我需要运行一个命令来锁定它们一次,这样它们就永远不会作为依赖更新
  • 忽略更新:安装包,同时忽略更新此更新中按名称传递的某些包。

如果 2 个用例中只有一个是可能的、已知的或更容易的,请将其写为答案。

【问题讨论】:

  • 对于 Windows 7,您需要固定 python 3.8

标签: python anaconda conda


【解决方案1】:

conda install 的引脚 (=):package=1.0

对比

pip install 的别针 (==):package==1.0

【讨论】:

    【解决方案2】:

    试试

    pip install <package name==version no*>
    

    例如

    pip install musdb==0.2.*
    

    这会固定你的包裹

    【讨论】:

    【解决方案3】:

    这有两个方面。首先,可以通过更改配置选项auto_update_conda to False来防止conda自动更新:

    conda config --set auto_update_conda False
    

    另一点是将包固定到某些版本。对于那些您不想更新的软件包,您可以通过在环境的conda-meta 目录中名为pinned(您可能需要创建它)的文件中添加一行来固定版本。语法是

    [下面的代码] [放在conda-meta/pinned] 强制 NumPy 停留在 1.7 系列,即任何以 1.7 开头的版本,并强制 SciPy 完全停留在 0.14.2 版本:

    numpy 1.7.*
    scipy ==0.14.2
    

    更多信息请参见the documentation。

    【讨论】:

    • 第一个禁用 conda 自动更新的命令适用于 conda 5.0.1 但不适用于 conda 2.3.0
    • 然而,第二个技巧 - 带有固定文件的那个 - 有效。我将 conda 放在固定文件中以禁用其更新并且它可以工作!它现在生成“错误:无法满足的包规格”。当安装需要更新 conda 时。
    • 即使使用您的解决方案,我也无法固定我自己构建的 python 二进制文件。例如,即使我这样做 conda install numpy ... python=3.6.3-0,我的 conda 也会尝试 python: 3.6.3-0 ...torch_fork/conda-bld --&gt; 3.6.3-h6c0c0dc_5
    • 您可以固定包的频道,但我不知道该怎么做。请提出一个新问题并包含您的完整输入和输出
    • 我将两个包固定到 pip 构建中,因为 conda 构建 were failing,带有 llvmlite==0.27.0-pypi 和 numba==0.42.0-pypi。
    猜你喜欢
    • 2018-04-11
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 2021-01-12
    • 2020-01-05
    相关资源
    最近更新 更多