我目前正在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
中的代码不可访问。我应该如何设置这两个环境?
答案 0 :(得分:0)
这实际上是我现在遇到的一个非常有趣的问题。我有一个拥有两个分支的仓库,它们的开发非常活跃,我需要经常来回切换。分支具有不同的编译代码(Fortran和C)版本,这意味着每次我git checkout <branch>
时都需要重新编译代码。至少可以说不是最佳选择。
我想拥有两个conda环境,每个环境中都安装了一个不同的分支。我想运行两个python内核,一个从每个conda env启动,并且能够在两个内核中进行测试(运行代码),而无需切换分支(仅在我工作的窗口中)。
我最终要做的是在单独的测试目录下克隆仓库两次,两者都与主仓库的主开发目录分开,检查每个目录中的不同分支并将它们安装在单独的conda环境中。
只要不触碰每个测试目录中的master分支,我就可以在准备就绪时向上游推送并合并。