我最近在几个项目中使用了anaconda3,每次我为项目创建虚拟环境时,anaconda似乎都在重新下载相同的包(例如pytorch)。
我是否配置错误或者这种行为没问题?
为了澄清,我正在做斯坦福大学 CS224n 类(class)以及我使用的作业:
conda env create --file env.yml
其中 env.yml 的形式为:
name: local_nmt
channels:
- pytorch
- defaults
dependencies:
- python=3.5
- numpy
- scipy
- tqdm
- docopt
- pytorch
- nltk
- torchvision
我无法在 anaconda 文档中做出解释。 提前致谢!
最佳答案
如果只指定包名或者版本,那么Conda会默认抓取符合约束的最新版本。因此,任何具有较新版本的软件包都将导致下载。
离线模式
有一个 --offline
标志仅使用包缓存中可用的内容。
指定构建
但是,这可能并不总是可行(例如,您已将一些非缓存包添加到 YAML)。在这种情况下,可以另外指定构建(充当唯一标识符)以对应于已缓存的版本。
不确定最简洁的方法,但一种方法是首先从包所在的现有环境中导出 YAML(例如,conda export env > env.yaml
),然后然后使用其中的规范填写您尝试创建的环境 YAML 的详细信息。
克隆
可能还值得一提的是,人们还可以克隆现有环境:
conda create --clone old_env --name new_env
关于anaconda - 为什么 anaconda 在创建新环境时会再次下载我已有的软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63906049/