Menjalankan alur dengan lingkungan Anaconda

Azure DevOps

Pelajari cara menyiapkan dan menggunakan Anaconda dengan Python di alur Anda. Anaconda adalah distribusi Python untuk ilmu data dan pembelajaran mesin.

Mulai

Ikuti petunjuk ini untuk menyiapkan alur untuk contoh aplikasi Python dengan lingkungan Anaconda.

  1. Masuk ke organisasi Azure DevOps Anda dan arahkan ke proyek Anda.

  2. Dalam proyek Anda, arahkan ke halaman Alur. Lalu, pilih tindakan untuk membuat alur baru.

  3. Menelusuri langkah-langkah wizard dengan terlebih dahulu memilih GitHub sebagai lokasi kode sumber Anda.

  4. Anda dapat diarahkan ke GitHub untuk masuk. Jika demikian, masukkan informasi masuk GitHub Anda.

  5. Saat daftar repositori muncul, pilih repositori sampel Anaconda Anda.

  6. Azure Pipelines akan menganalisis kode di repositori Anda dan mendeteksi file yang ada azure-pipelines.yml .

  7. Pilih Jalankan.

  8. Menjalankan baru sudah dimulai. Tunggu sampai menjalankan selesai.

Tip

Untuk membuat perubahan pada file YAML seperti yang dijelaskan dalam topik ini, pilih alur di halaman Alur , lalu Editazure-pipelines.yml file.

Menambahkan conda ke jalur sistem Anda

Pada agen yang dihosting, conda dibiarkan PATH secara default untuk menjaga versi Python-nya tidak bertentangan dengan versi lain yang diinstal. Perintah task.prependpath agen akan membuatnya tersedia untuk semua langkah berikutnya.

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

Membuat lingkungan

Dari argumen baris perintah

Perintah conda create akan membuat lingkungan dengan argumen yang Anda lewati.

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

Dari YAML

Anda dapat memeriksa environment.yml file ke repositori yang menentukan konfigurasi untuk lingkungan Anaconda.

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

Catatan

Jika Anda menggunakan agen yang dihost sendiri dan tidak menghapus lingkungan di akhir, Anda akan mendapatkan kesalahan pada build berikutnya karena lingkungan sudah ada. Untuk mengatasinya --force , gunakan argumen : conda env create --quiet --force --file environment.yml.

Catatan

Jika Anda menggunakan agen yang dihost sendiri yang berbagi penyimpanan, dan menjalankan pekerjaan secara paralel menggunakan lingkungan Anaconda yang sama, mungkin ada bentrokan antara lingkungan tersebut. Untuk mengatasinya --name , gunakan argumen dan pengidentifikasi unik sebagai nilai argumen, seperti perangkaian dengan $(Build.BuildNumber) variabel build.

Menginstal paket dari Anaconda

YAML berikut menginstal scipy paket di lingkungan conda bernama myEnvironment.

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

Menjalankan langkah-langkah alur di lingkungan Anaconda

Catatan

Setiap langkah build berjalan dalam prosesnya sendiri. Ketika Anda mengaktifkan lingkungan Anaconda, Anaconda akan mengedit PATH dan membuat perubahan lain pada prosesnya saat ini. Oleh karena itu, lingkungan Anaconda harus diaktifkan secara terpisah untuk setiap langkah.

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

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

Tanya Jawab Umum

Mengapa saya mendapatkan kesalahan "Izin ditolak"?

Pada MacOS yang dihosting, pengguna agen tidak memiliki kepemilikan direktori tempat Miniconda diinstal. Untuk perbaikan, lihat tab "MacOS yang dihosting" di bawah Tambahkan conda ke jalur sistem Anda.

Mengapa build saya berhenti merespons pada langkah conda create atau conda install ?

Jika Anda lupa untuk lulus --yes, conda akan berhenti dan menunggu interaksi pengguna.

Mengapa skrip saya di Windows berhenti setelah mengaktifkan lingkungan?

Di Windows, activate adalah skrip Batch. Anda harus menggunakan call perintah untuk melanjutkan menjalankan skrip Anda setelah mengaktifkan. Lihat contoh penggunaan calldalam alur.

Bagaimana cara menjalankan pengujian saya dengan beberapa versi Python?

Lihat Membangun aplikasi Python di Azure Pipelines.