导出/导入conda环境和包,包括本地文件

时间:2018-01-16 10:10:27

标签: linux packages conda

我想让我的分析可重复,并希望使用conda来确保使用特定版本的特定软件。为此,我设置了一个环境,包括从本地源构建的一些程序和导出一些环境变量的脚本。

我导出了环境并从本地文件构建了一个包(基本上遵循此处描述的过程,发布#2:>link<):

conda env export > myenv.yml
conda package --pkg-name myenv --pkg-version 0.1 --pkg-build 1

在另一台机器上,我使用

导入环境没有问题
conda env create -f myenv.yml
source activate myenv

但是,在尝试安装软件包时遇到了一些问题:

conda install myenv-0.1-1.tar.bz2
ERROR conda.core.link:_execute_actions(337): An error occurred while installing package '<unknown>::myenv-0.1-1'.
FileNotFoundError(2, 'No such file or directory')
Attempting to roll back.
FileNotFoundError(2, 'No such file or directory')

所以我读了一些关于频道的内容,并尝试使用该软件包设置本地频道:

mkdir -p own_pkg/linux-64
mkdir -p own_pkg/noarch
mv myenv-0.1-1.tar.bz2 own_pkg/linux-64/
conda index own_pkg/linux-64 own_pkg/noarch
updating: myenv-0.1-1.tar.bz2

我将以下内容添加到~/.condarc

channels:
  - defaults
  - file://my/path/to/own_pkg

然后再次尝试安装但仍然:

conda install myenv
Fetching package metadata .............

PackageNotFoundError: Packages missing in current channels:

  - myenv

We have searched for the packages in the following channels:

  - https://repo.continuum.io/pkgs/main/linux-64
  - https://repo.continuum.io/pkgs/main/noarch
  - https://repo.continuum.io/pkgs/free/linux-64
  - https://repo.continuum.io/pkgs/free/noarch
  - https://repo.continuum.io/pkgs/r/linux-64
  - https://repo.continuum.io/pkgs/r/noarch
  - https://repo.continuum.io/pkgs/pro/linux-64
  - https://repo.continuum.io/pkgs/pro/noarch
  - file://my/path/to/own_pkg/linux-64
  - file://my/path/to/own_pkg/noarch

即使如此,/my/path/to/own_pkg/linux-64文件.index.jsonrepodata.json等也存在,并且包名称和tar.bz2文件在其中引用。

有人可以向我解释我做错了什么和/或实现目标的适当工作流程是什么?

谢谢!

更多信息:

源机:

  • Linux Ubuntu 16.04
  • conda version 4.4.7
  • conda-build version 3.2.1

目标机器:

  • Scientific Linux 7.4
  • conda version 4.3.29
  • conda-build version 3.0.27

0 个答案:

没有答案