2016-02-12 20 views
10

Birbirine bağımlı birkaç python projem var. Her proje için farklı yayın sürümlerim var ve farklı projeler belirli bir projenin farklı sürümlerine bağlı olabilir. Bu projelerin piyasaya sürülmesini conda paketleri olarak sunabildiğim ve diğer projeler oradan gerekli sürümü yükleyebileceğimiz bir iç sunucuda kendi conda depolarımı oluşturmak istiyorum. Mümkün mü? Öyleyse nasıl?Kendi özel conda deposumu nasıl barındırabilirim?

cevap

19

Özel repo'nuz olarak conda custom channel kullanabilirsiniz. Önemli adımlar, bir conda paketi oluşturmak için “conda build” kullanmak, daha sonra bu paketi özel kanalınıza (bir dizine) kopyalamak ve şimdi bu dizinde conda dizini çalıştırmaktır. Daha sonra bu kanaldaki paketleri "conda install -c" kullanarak yükleyebilirsiniz.

  • kanal oluşturun:

    bir örnek, daha ayrıntılı olarak, en linux-64 varsayalım bazı proje meta.yaml ile "abc" adlı varsayarak Şimdi
    mkdir -p /tmp/my-conda-channel/linux-64

  • ve build.sh bazı sürümü X ile Şimdi bunu inşa:

    conda build abc

  • Bu olacak b conda-bld dizininde bir tar.bz2 dosyası. Örneğin: ~/miniconda3/conda-bld/linux-64/abc-X-py35_0.tar.bz2. kanalınıza bu dosyayı kopyalayın:

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

  • Şimdi endeksi it:

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

Artık özel kanala o paketi yükledim. Sen yaparak Conda ortamların herhangi birinde yükleyebilirsiniz:

Kanalınızla daha versiyonlarını verdikten sonra X, bu nedenle sürüm olduğunu, geri çağırma,
conda install -c file://tmp/my-conda-channel/ abc=X 

, belirli sürümlerini yükleyebilirsiniz.

"abc" nin X sürümüne bağlı bir projeniz varsa, bunu meta.yaml projelerine eklemekteyiz. Örnek:

bunu otomatik olarak aranır alacak böylece .condarc dosyasına eklemek için muhtemelen iyi bir fikir bu kanalı oluşturduktan sonra
package: 
    name: some-other-project 
    version: 0.1 
requirements: 
    build: 
    - abc X 
... 

. Örneğin:

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

Kanalınızın http üzerinden erişilebilmesi için bunu yapmanın herhangi bir yolu var mı? – ostrokach

İlgili konular