繁体   English   中英

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

[英]How to Create Different Conda Environments for Different Branches of a Git Repository?

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

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

更具体地说,我的存储库的组织方式如下

my-repo/
    master
    issue-fix
    additional-feature

我想创建一个名为 env1 的env1环境,它使用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中的代码。 我应该如何设置这两个环境?

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

我想要两个 conda 环境,在每个环境中安装一个不同的分支。 我想要运行两个 python 内核,一个从每个 conda env 启动,并且能够在不切换分支的情况下测试(运行代码)(仅我工作的窗口)。

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

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

我知道这是一个老问题,但我最近一直在尝试做同样的事情,并发现您可以通过将--src <target-repo-directory>添加到 pip 安装命令来指定 repo 的目录。 使用不同的目标目录将允许您在不同的 conda 虚拟环境中安装不同的分支(您可以通过pip list确认)。

对于上面的示例,您需要:

mkdir /path/to/issue-fix-branch
mkdir /path/to/additional-feature-branch
conda create -n env1
source activate env1
conda install <my other packages>
pip install --src /path/to/issue-fix-branch -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 --src /path/to/additional-feature-branch -e git+file:///path/to/repo@additional-feature#egg=repo-0.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM