Bagaimana lingkungan conda yang sudah ada diperbarui dengan file .yml lain. Ini sangat membantu saat mengerjakan proyek yang memiliki beberapa file persyaratan, misalnya base.yml, local.yml, production.yml
, dll.
Misalnya, di bawah ini adalah base.yml
file yang memiliki paket conda-forge, conda, dan pip:
base.yml
name: myenv
channels:
- conda-forge
dependencies:
- django=1.10.5
- pip:
- django-crispy-forms==1.6.1
Lingkungan yang sebenarnya dibuat dengan:
conda env create -f base.yml
.
Nanti, paket tambahan perlu ditambahkan ke base.yml
. File lain, misalnya local.yml
, perlu mengimpor pembaruan tersebut.
Upaya sebelumnya untuk mencapai ini termasuk:
membuat local.yml
file dengan definisi impor:
channels:
dependencies:
- pip:
- boto3==1.4.4
imports:
- requirements/base.
Dan kemudian jalankan perintah:
conda install -f local.yml
.
Ini tidak bekerja. Ada pemikiran?
Jawaban:
Coba gunakan pembaruan conda env :
Atau tanpa perlu mengaktifkan lingkungan (terima kasih @NumesSanguis):
sumber
-f
danfile.yml
. Menghapus tanda sama dengan akan membuat penyelesaian tab bekerja pada.yml
nama file.--name env_name
untuk mengabaikanname: foo
tag apa pun dilocal.yml
. Juga mencegah kebutuhan untuk mengaktifkan myenv terlebih dahulu. Perintah lengkap:conda env update --name env_name --file local.yml
Dari: stackoverflow.com/a/45525593/3399066 's komentarJawaban yang disarankan sebagian benar. Anda harus menambahkan opsi --prune untuk juga menghapus paket yang telah dihapus dari environment.yml. Perintah yang benar:
sumber
jawaban alkamid ada di baris yang benar, tetapi saya telah menemukan bahwa Conda gagal menginstal dependensi baru jika lingkungan sudah aktif. Menonaktifkan lingkungan pertama-tama menyelesaikan ini:
sumber
-n <environment name>
, tetapi secara default tampaknya bekerja dengan lingkungan yang diharapkan (mungkin yang paling baru aktif, atau hanya pilihan lingkungan default)