如何根据 "Base" 中的新安装更新 conda 的虚拟环境?
How to update virtual environment of conda based on new install in "Base"?
我是 运行 WSL2 上的 Ubuntu2.04。我已经使用 conda 安装了大部分软件包。
我使用 conda 创建了一个虚拟环境:“PipInConda_DKU”,这是 base 的副本。我安装了pip,然后我使用pip安装了open CV。
最近在环境(base)中安装了Pytorch。有没有一种简单的方法可以更新另一个“PipInConda_DKU”?
Conda CLI 没有专门的命令来执行此操作,但有一些简单的方法可以执行此操作。请注意,pip
-已安装的软件包将不会被重复使用。最好的办法就是限制在同一版本。
离线安装
非特定
最简单的方法可能就是在安装命令中添加 --offline
标志:
conda install -n PipInConda_DKU --offline pytorch
并且如果所有其他软件包都与 base 中的软件包相匹配,Conda 很可能会解析为与您安装到 base 的 pytorch
相同的版本.
具体
但是,这并不能保证。为了更加严格并匹配 base 中的确切包,您应该从 base 中获取该信息,然后在安装时使用它来指定包构建。
例如,我的 base 中有包 git
,假设我想在不同的环境中构建相同的构建,foo。我会用
$ conda list -en base '^git$'
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: osx-64
git=2.29.1=pl5262h1f02409_0
获取信息,然后
conda install -n foo --offline git=2.29.1=pl5262h1f02409_0
或者,作为单行,有多个包裹(pkg1
,pkg2
):
conda install -n foo --offline $(conda list -en base '^(pkg1|pkg2)$' | awk '[=13=] !~ /^#/')
通过 YAML 更新
另一种选择是将源环境转储到 YAML,然后使用 YAML 更新目标。例如,假设 foo 和 bar 分别是我们的源环境和目标环境,那么
conda env export -n foo > foo.yaml
conda env update -n bar -f foo.yaml
会将 foo 中的所有内容安装到 bar.
警告:conda env update
命令将改变环境,而不提示用户查看更改。
我是 运行 WSL2 上的 Ubuntu2.04。我已经使用 conda 安装了大部分软件包。
我使用 conda 创建了一个虚拟环境:“PipInConda_DKU”,这是 base 的副本。我安装了pip,然后我使用pip安装了open CV。
最近在环境(base)中安装了Pytorch。有没有一种简单的方法可以更新另一个“PipInConda_DKU”?
Conda CLI 没有专门的命令来执行此操作,但有一些简单的方法可以执行此操作。请注意,pip
-已安装的软件包将不会被重复使用。最好的办法就是限制在同一版本。
离线安装
非特定
最简单的方法可能就是在安装命令中添加 --offline
标志:
conda install -n PipInConda_DKU --offline pytorch
并且如果所有其他软件包都与 base 中的软件包相匹配,Conda 很可能会解析为与您安装到 base 的 pytorch
相同的版本.
具体
但是,这并不能保证。为了更加严格并匹配 base 中的确切包,您应该从 base 中获取该信息,然后在安装时使用它来指定包构建。
例如,我的 base 中有包 git
,假设我想在不同的环境中构建相同的构建,foo。我会用
$ conda list -en base '^git$'
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: osx-64
git=2.29.1=pl5262h1f02409_0
获取信息,然后
conda install -n foo --offline git=2.29.1=pl5262h1f02409_0
或者,作为单行,有多个包裹(pkg1
,pkg2
):
conda install -n foo --offline $(conda list -en base '^(pkg1|pkg2)$' | awk '[=13=] !~ /^#/')
通过 YAML 更新
另一种选择是将源环境转储到 YAML,然后使用 YAML 更新目标。例如,假设 foo 和 bar 分别是我们的源环境和目标环境,那么
conda env export -n foo > foo.yaml
conda env update -n bar -f foo.yaml
会将 foo 中的所有内容安装到 bar.
警告:conda env update
命令将改变环境,而不提示用户查看更改。