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

dor*_*mon 5 python anaconda conda miniconda

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

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

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

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

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

我有一些其他发现:

  1. 双方package_nameanother_package_name发布到我们使用我们的内部通道的文件位置(使用普通的cp *.tar.bz2命令)
  2. 这仅在CI中发生,对特定的CI用户而言,并且仅在我们位于该CI文件夹中以及该CI环境中时才发生,这意味着使用其他用户,创建新环境,将./build文件夹复制到其他位置都将停止从重现这种行为。

这阻碍了我们拥有适当的功能CI。而且我们无法确定该local install步骤正在发生什么,以及为什么它选择了错误版本的依赖关系。

有任何想法吗?