簡體   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