【问题标题】:Anaconda environments packages updateAnaconda 环境包更新
【发布时间】:2018-08-02 16:43:47
【问题描述】:

假设我以 root 身份执行完整的 anaconda 安装,该安装将在所有用户之间共享。

一个。在 base 环境中,我安装了 python2.7.12、matplotlib 和 numpy:

$ conda install python=2.7.12 matplotlib numpy

b.几个月后,我的一位用户创建了一个环境:

$ conda install -n py27 python=2.7.12 matplotlib numpy

让我们假设同时 matplotlib 和 numpy 已更新并且不再在同一版本上。

我的问题是:

  1. a)中安装的matplotlib和numpy的版本会自动更新到最新吗?

  2. b)中创建环境时,安装了哪些版本的matplotlib和numpy? a) 中的基础环境中安装的是最新的还是安装在基础环境中的?

我问这个的原因是因为我试图实现一个共享的 anaconda 环境,同时最大限度地减少磁盘占用。基本上,原因是避免为每个用户安装不同的 anaconda,并避免 20 个不同版本的 matplotlib 和 numpy(以及许多其他版本)占用磁盘空间。

谢谢。

【问题讨论】:

    标签: python-2.7 server anaconda conda


    【解决方案1】:

    a.) 已安装包的版本不会自动更新,只有当您使用包管理器明确发出更新命令时,包才会更新

    b.) 当创建新环境并尝试再次安装软件包时,默认情况下它将安装最新的软件包(可能与基础环境中存在的任何内容不匹配)

    编辑 - 我想评论一下,使用 requirements.txt 文件是确保每个人都使用相同版本的已安装库的更好方法。

    否则你可以确保每个人都提到版本号以及安装命令

    例如:pip install 'package_name==version_number'

    【讨论】:

    • 谢谢!有没有办法强制新环境始终使用安装在基础环境中的版本? (除非明确指定)
    • @jorgehumberto 你可以建议每个人都使用相同的 requirements.txt(我添加了一个链接)文件来安装包,但除此之外我想不出你可以强制本地os 用户如果选择这样做,则不要在他的本地 python 环境中安装特定包的更新版本
    • 谢谢!我想到的另一种选择是克隆一个默认环境,我猜这会是相似的吗?在那种情况下,如果我理解正确,在新环境中创建包时,将是克隆环境中包的硬链接,对吗?如果我在克隆环境中更新包怎么办?它会破坏硬链接或更新它们吗? (假设它们的版本在安装时没有明确设置)
    • @jorgehumberto 我看不出你提出的替代方法在实践中会如何改变任何东西,而不是强迫每个人只使用基本环境。
    • 我们的一些用户使用环境来测试和部署一些包,并希望能够创建和管理他们的环境。但是,如果每个人都部署了同一个包的不同版本,我们最终可能会浪费大量空间。
    猜你喜欢
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    • 2019-06-03
    • 1970-01-01
    相关资源
    最近更新 更多