conda build和conda install使用相同依赖性的不同版本,为什么?

时间:2019-03-01 16:38:17

标签: python anaconda conda miniconda

在我们的CI流程中,我们执行以下操作:

  1. 为此CI管道创建全新的conda环境
  2. 使用conda build创建一个conda包,将输出文件夹设置为./build
  3. 使用conda install -c ./build package_name安装新创建的软件包。

第二步是在CI的第二阶段,当我们进行测试时,我们只是调用pytest来运行CI环境中的所有测试文件,并使用新安装的package_name包。

注意package_name具有定义包的meta.yaml文件中列出的内部依赖项another_package_name

我们发现的一件事是,在第1步和第2步中,another_package_name的版本不同,在构建软件包时,conda似乎能够获取依赖关系的最新版本。不过,在第2步中,conda似乎正在选择依赖项的旧版本。

我有一些其他发现:

  1. package_nameanother_package_name都发布到我们用于内部渠道的文件位置(使用普通cp *.tar.bz2命令)
  2. 这仅在CI中发生,对特定的CI用户而言,并且仅在我们位于该CI文件夹和该CI环境中时发生,这意味着使用其他用户,创建新环境,复制{{1} }文件夹移到其他地方都阻止我们重现此行为。

这阻碍了我们拥有适当的功能CI。而且我们无法找出./build步骤的结果以及为什么它选择了错误的依赖关系版本。

有什么想法吗?

0 个答案:

没有答案