Anaconda ortamlarıyla işlem hatlarını çalıştırma

Azure DevOps Services

İşlem hattınızda Python ile Anaconda'yı ayarlamayı ve kullanmayı öğrenin. Anaconda, veri bilimi ve makine öğrenmesi için bir Python dağıtımıdır.

Başlarken

Anaconda ortamıyla örnek bir Python uygulaması için işlem hattı ayarlamak için bu yönergeleri izleyin.

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. Projenizde İşlem Hatları sayfasına gidin. Ardından eylemi seçerek yeni bir işlem hattı oluşturun.

  3. İlk olarak kaynak kodunuzun konumu olarak GitHub'ı seçerek sihirbazın adımlarını izleyin.

  4. Oturum açmak için GitHub'a yönlendirilebilirsiniz. Öyleyse GitHub kimlik bilgilerinizi girin.

  5. Depo listesi görüntülendiğinde Anaconda örnek deponuzu seçin.

  6. Azure Pipelines, deponuzdaki kodu analiz eder ve mevcut azure-pipelines.yml bir dosyayı algılar.

  7. Çalıştır'ı seçin.

  8. Yeni bir çalıştırma başlatılır. Çalıştırmanın bitmesini bekleyin.

İpucu

BU konuda açıklandığı gibi YAML dosyasında değişiklik yapmak için İşlem Hatları sayfasında işlem hattını seçin ve dosyayı düzenleyinazure-pipelines.yml.

Sistem yolunuza conda ekleme

Barındırılan aracılarda, Python sürümünün PATH diğer yüklü sürümlerle çakışmasını önleyecek şekilde conda varsayılan olarak dışında bırakılır. Aracı task.prependpath komutu bunu sonraki tüm adımlarda kullanılabilir hale getirir.

- bash: echo "##vso[task.prependpath]$CONDA/bin"
  displayName: Add conda to PATH

Ortam oluşturma

Komut satırı bağımsız değişkenlerinden

komut, conda create geçirdiğiniz bağımsız değişkenlerle bir ortam oluşturur.

- bash: conda create --yes --quiet --name myEnvironment
  displayName: Create Anaconda environment

YAML'den

Anaconda ortamının yapılandırmasını tanımlayan bir dosyayı deponuza iade environment.yml edebilirsiniz.

- script: conda env create --quiet --file environment.yml
  displayName: Create Anaconda environment

Not

Şirket içinde barındırılan bir aracı kullanıyorsanız ve sonunda ortamı kaldırmıyorsanız, ortam zaten mevcut olduğundan bir sonraki derlemede hata alırsınız. Sorunu çözmek için şu bağımsız değişkeni kullanın --force : conda env create --quiet --force --file environment.yml.

Not

Depolamayı paylaşan şirket içinde barındırılan aracılar kullanıyorsanız ve işleri aynı Anaconda ortamlarını kullanarak paralel olarak çalıştırıyorsanız, bu ortamlar arasında çakışmalar olabilir. Sorunu çözmek için bağımsız değişkenini --name ve benzersiz tanımlayıcıyı derleme değişkeniyle $(Build.BuildNumber) birleştirme gibi bağımsız değişken değeri olarak kullanın.

Anaconda'dan paketleri yükleme

Aşağıdaki YAML paketi adlı myEnvironmentconda ortamına yüklerscipy.

- bash: |
    source activate myEnvironment
    conda install --yes --quiet --name myEnvironment scipy
  displayName: Install Anaconda packages

Anaconda ortamında işlem hattı adımlarını çalıştırma

Not

Her derleme adımı kendi işleminde çalışır. Bir Anaconda ortamını etkinleştirdiğinizde, ortamı düzenler PATH ve geçerli işleminde başka değişiklikler yapar. Bu nedenle, bir Anaconda ortamı her adım için ayrı ayrı etkinleştirilmelidir.

- bash: |
    source activate myEnvironment
    python -m pytest --junitxml=junit/unit-test.xml
  displayName: pytest

- task: PublishTestResults@2
  inputs:
    testResultsFiles: 'junit/*.xml'
  condition: succeededOrFailed()

SSS

Neden "İzin reddedildi" hatası alıyorum?

Barındırılan macOS'ta, aracı kullanıcı Miniconda'nın yüklü olduğu dizinin sahipliğine sahip değildir. Bir düzeltme için Sistem yolunuza conda ekleme altındaki "Barındırılan macOS" sekmesine bakın.

Derlemem bir conda create veya conda install adımında neden yanıt vermeyi durduruyor?

geçirmeyi --yesunutursanız, conda durur ve kullanıcı etkileşimini bekler.

Windows'ta betiğim ortamı etkinleştirdikten sonra neden durduruluyor?

Windows'da bir activate Batch betiğidir. Etkinleştirdikten sonra betiğinizi çalıştırmaya devam etmek için komutunu kullanmanız call gerekir. İşlem hattında kullanma call örneklerine bakın.

Testlerimi Python'ın birden çok sürümüyle nasıl çalıştırabilirim?

Bkz. Azure Pipelines'da Python uygulamaları derleme.