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 '$0 !~ /^#/')
通过 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 命令将改变环境,而不提示用户查看更改。