我想让我的分析可重复,并希望使用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.json
,repodata.json
等也存在,并且包名称和tar.bz2文件在其中引用。
有人可以向我解释我做错了什么和/或实现目标的适当工作流程是什么?
谢谢!
更多信息:
源机:
目标机器: