如何为Git存储库的不同分支创建不同的Conda环境?

时间:2018-08-15 20:49:00

标签: python git anaconda

我目前正在Git存储库中的一个项目中,该项目具有多个不同的分支。我想设置两个不同的conda环境,每个环境都使用该存储库中不同分支的代码。

我希望每个环境都是完全独立的,因为我在计算集群上运行我的项目,并且希望同时在存储库的不同分支上运行的多个作业排队。

更具体地说,我的存储库的组织方式类似

my-repo/
    master
    issue-fix
    additional-feature

,我想创建一个名为env1之类的conda环境,它使用issue-fix中的代码以及其他软件包。然后,我想创建另一个名为env2的环境,该环境使用additional-feature中的代码以及其他相同的软件包。

检出分支issue-fix中的代码后,我尝试运行以下命令来创建两个环境:

conda create -n env1
source activate env1
conda install <my other packages>
pip install -e git+file:///path/to/repo@issue-fix#egg=repo-0.1
source deactivate
conda create -n env2
source activate env2
conda install <my other packages>
pip install -e git+file:///path/to/repo@additional-feature#egg=repo-0.1

但是,在环境env2中,分支additional-feature中的代码不可访问。我应该如何设置这两个环境?

1 个答案:

答案 0 :(得分:0)

这实际上是我现在遇到的一个非常有趣的问题。我有一个拥有两个分支的仓库,它们的开发非常活跃,我需要经常来回切换。分支具有不同的编译代码(Fortran和C)版本,这意味着每次我git checkout <branch>时都需要重新编译代码。至少可以说不是最佳选择。

我想拥有两个conda环境,每个环境中都安装了一个不同的分支。我想运行两个python内核,一个从每个conda env启动,并且能够在两个内核中进行测试(运行代码),而无需切换分支(仅在我工作的窗口中)。

我最终要做的是在单独的测试目录下克隆仓库两次,两者都与主仓库的主开发目录分开,检查每个目录中的不同分支并将它们安装在单独的conda环境中。

只要不触碰每个测试目录中的master分支,我就可以在准备就绪时向上游推送并合并。