我真的在努力创造一个可复制的conda环境。我将概述到目前为止所采用的方法以及遇到的问题。我希望您能为下一步的疑难解答或可以检查的资源提供任何提示。
作为背景,我在一个小型团队中工作,并且希望能够与团队中的其他成员共享我一直在使用的环境的副本,因此我可以确定我们拥有所有所需库的相同版本为了我们的工作。
我当前的工作流程如下:
name: example_env_build
channels:
- conda-forge
- defaults
dependencies:
- pandas
- requests
实际环境中还有很多东西,但这就是想法
conda env create -f example_env_build.yml
conda env export -n example_env_build --no-builds --file test_export.yml
固定。我添加了--no-builds
,因为我发现某些内部版本已被标记为已损坏,并导致了问题,并且正确实现该版本对于我而言已经足够接近了。test_export.yml
文件,并将其名称更改为example_env
,然后从底部删除prefix
行。通常,如果每个人都在创建文件后尝试相对快速地构建环境,则此方法效果很好。但是,能够指定可复制环境的全部目的是,我应该能够在任何时间重新创建该环境。我团队中的某人最近有一台新计算机,所以我试图帮助她设置环境并遇到了一系列冲突。为了进行故障排除,我尝试在计算机上重建环境并遇到相同的情况。
对于故障排除,我执行了以下操作:
*克隆我的环境,以便在conda create --name example_env_clone --clone example_env
混乱时进行备份
*导出环境conda env export -n example_env --no-builds --file example_env_rebuild.yml
*删除示例环境,以便我可以重建它conda env remove --name example_env
*尝试重新创建我刚刚导出的环境conda env create -f example_env_rebuild.yml
从那里我遇到了各种各样的版本冲突。我不明白这一点,因为a)这些都是在工作环境中使用的所有版本,并且b)许多“冲突”在我看来并不矛盾。例如,这是我目前的尝试之一:
Package phik conflicts for:
phik=0.9.10
pandas-profiling=2.4.0 -> phik[version='>=0.9.8']
我基本上是随机选择的,但是有很多这样的东西。在我阅读本文时,我正在尝试安装phik 0.9.10,而pandas-profiling要求> = 0.9.8,即0.9.10即可满足。
我的智慧到此为止。我已经读过一百万本“如何管理conda环境”指南(例如this,this和this)以及conda environment management docs。所有这些似乎都表明我在做什么应该可以正常工作,但是我和我的团队经常遇到问题。