想知道如何在 Conda 包管理器中管理包

Want to know how packages are managed in Conda Package Manager

我是数据科学的新手。网上资源表明,大多数数据科学家使用 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 是两个命令之间的区别。

我试图在 google 上找到它,但找不到任何东西。

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

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

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

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

首先conda本身是在基础环境中安装的。为了整洁起见,最好避免将它用于其他任何事情,而是创建新环境并在其中安装所需的包。 (As stated in the conda docs)

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

您不必担心因安装包两次而淹没您的磁盘。如果 Conda 检测到它已经安装了相同版本的包而不是将相同的东西保存两次,则它会使用硬链接。

安装命令的 -c 部分选择安装包的渠道。 您可以将渠道视为存储库链接。

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

您可以在 anaconda page

上查看哪个频道有哪些套餐可用