【问题标题】:Want to know how packages are managed in Conda Package Manager想知道如何在 Conda 包管理器中管理包
【发布时间】:2021-11-10 00:26:21
【问题描述】:

我是数据科学的新手。在线资源表明大多数数据科学家使用 conda + pip 来管理他们的包和依赖项,所以我也这样做了。让我举一个简单的例子,我只有一个名为 virtualEnv 的虚拟环境。所以基本上 conda 现在有 2 个环境:

  • 基础
  • 虚拟环境

现在假设我已经在我的基础环境中安装了 PyTorch=1.9.0。现在如果我切换到 virtualEnv 并尝试在该环境中安装 PyTorch=1.9.0(与 base 相同的版本),会发生什么?

conda 是从基础环境中提取 PyTorch 包,还是再次从其在线存储库中安装包。

另外,我使用以下命令在基本环境中安装了 PyTorch:PyTorch website 上提供

 conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch 

我是使用相同的命令在 virtualEnv 中安装 PyTorch 还是只使用简单的命令:

conda install pytorch cudatoolkit torchvision torchaudio 

基本上 -c pytorch 就是这两个命令的区别。

我试图在谷歌上找到这个,但找不到任何东西。

【问题讨论】:

    标签: python anaconda data-science conda package-managers


    【解决方案1】:

    我认为它会从在线存储库中提取依赖项,使用本地依赖项在您克隆环境时发生 - 请参阅--clone 参数(在conda create 期间使用)。

    -c 提供了有关这些包应该来自哪个频道的信息 - -c torch 很可能会直接从 pytorch 存储库下载它们 - 如果没有这个选项,包管理器可能会尝试使用不同的源而不是例如,查找您正在寻找的版本。

    在第二次调用中,您没有指定 cuda 工具包的版本,因此存在与下载的 Torch 不兼容的风险 - 我建议按照页面上指定的方式下载它。

    有一段时间没有使用 conda - 这是我记得的。

    【讨论】:

      【解决方案2】:

      首先,conda 本身是安装在基础环境中的。出于整洁的目的,最好避免将其用于其他任何事情,而是创建新环境并在其中安装您需要的软件包。 (As stated in the conda docs)

      因此,在您的示例中,您最好在 virtualEnv 中安装 pytorch。

      您不必担心安装两次软件包会导致磁盘泛滥。如果 Conda 检测到它已经安装了相同版本的软件包,而不是两次保存相同的东西,它会使用硬链接。

      安装命令的-c 部分选择安装包的通道。 您可以将通道想象成存储库的链接。

      pytorch 频道由 pytorch 组织管理,因此可能拥有最新版本的 pytorch 软件包。

      您可以在anaconda page的哪个频道上查看哪些包可用

      【讨论】:

        猜你喜欢
        • 2016-07-10
        • 1970-01-01
        • 2014-10-13
        • 2017-06-28
        • 1970-01-01
        • 2015-02-01
        • 2017-09-30
        • 1970-01-01
        • 2016-04-25
        相关资源
        最近更新 更多