2016-02-12 113 views
10

我有幾個互相依賴的python項目。每個項目有不同的發行版本,不同的項目可能依賴於特定項目的不同發行版本。我想在內部服務器上創建我自己的conda存儲庫,我可以將這些項目的版本推送爲conda包,其他項目可以從那裏安裝所需的版本。這可能嗎?如果是這樣如何?如何託管我自己的專用conda存儲庫?

回答

19

您可以使用conda custom channel作爲您的私人回購。基本步驟是使用「conda build」創建conda包,然後將該包複製到您的自定義通道(目錄)中,然後在該目錄上運行conda索引。然後,您可以使用「conda install -c」從此通道安裝軟件包。

一個例子,更詳細,讓我們假設Linux的64:

  • 創建通道:
    mkdir -p /tmp/my-conda-channel/linux-64
  • 現在,假設你有一些項目名爲 「abc」 與meta.yaml和build.sh一些版本X.現在,你蓋了:

    conda build abc

  • 這將b在您的conda-bld目錄中創建一個tar.bz2文件。例如:〜/ miniconda3/conda-bld/linux-64/abc-X-py35_0.tar.bz2。該文件複製到您的頻道:

    cp ~/miniconda3/conda-bld/linux-64/abc-X-py35_0.tar.bz2 /tmp/my-conda-channel/linux-64/

  • 現在指數是:

    conda index /tmp/my-conda-channel/linux-64/

現在已經上載的包到您的自定義頻道。您可以通過做任何你暢達環境的安裝:

conda install -c file://tmp/my-conda-channel/ abc=X 

其中,召回,在X是版本是這樣,一旦你放置更多版本在您的頻道,你可以安裝特定的版本。

如果您有一個項目依賴於X版本的「abc」,那麼我們只需將其添加到該項目meta.yaml。例如:

package: 
    name: some-other-project 
    version: 0.1 
requirements: 
    build: 
    - abc X 
... 

一旦你創建了這個通道,它可能是一個好主意,這樣它會被自動搜索,將其添加到您的.condarc文件。例如:

channels: 
- file://tmp/my-conda-channel/ 
- defaults 
+1

任何方式來做到這一點,使您的頻道可以通過HTTP訪問? – ostrokach

相關問題