Bagaimana cara membuat file lingkungan anaconda yang dapat digunakan di komputer lain?
Saya mengekspor lingkungan python anaconda saya ke YML menggunakan conda env export > environment.yml
. Yang diekspor environment.yml
berisi baris ini prefix: /home/superdev/miniconda3/envs/juicyenv
yang memetakan ke lokasi anaconda saya yang akan berbeda di komputer lain.
conda env create -f environment.yml
Sekadar sebagai tambahan, menurut pengalaman saya ini tidak akan berfungsi di seluruh platform, karena conda env akan mencantumkan banyak dependensi seperti `vs2015_runtime` jika Anda menggunakan Windows. Tapi tentu saja itu tidak tersedia di linux.environment.yml
file dengan tangan, sehingga Anda dapat membiarkannya - lihat stackoverflow.com/questions/39280638/…Jawaban:
Saya tidak dapat menemukan apa pun dalam
conda
spesifikasi yang memungkinkan Anda mengekspor file lingkungan tanpaprefix: ...
baris. Namun, seperti yang ditunjukkan Alex di komentar, conda tampaknya tidak peduli dengan baris awalan saat membuat lingkungan dari file.Dengan mengingat hal itu, jika Anda ingin pengguna lain tidak memiliki pengetahuan tentang jalur penginstalan default Anda, Anda dapat menghapus baris awalan dengan
grep
sebelum menulis keenvironment.yml
.Bagaimanapun, pengguna lain kemudian menjalankan:
dan lingkungan akan diinstal di jalur lingkungan conda default mereka.
Jika Anda ingin menentukan jalur penginstalan yang berbeda dari default untuk sistem Anda (tidak terkait dengan 'awalan' di environment.yml), cukup gunakan
-p
bendera diikuti dengan jalur yang diperlukan.Perhatikan bahwa Conda merekomendasikan membuat
environment.yml
dengan tangan, yang sangat penting jika Anda ingin berbagi lingkungan Anda di seluruh platform (Windows / Linux / Mac). Dalam hal ini, Anda bisa mengabaikannyaprefix
.sumber
Cara termudah untuk menyimpan paket dari lingkungan untuk diinstal di komputer lain adalah:
kemudian Anda dapat menginstal lingkungan menggunakan
jika Anda menggunakan
pip
, silakan gunakan perintah berikut: referensi https://pip.pypa.io/en/stable/reference/pip_freeze/sumber
Linux
Windows
Rasional: Secara default,
conda env export
termasuk informasi build:Sebagai gantinya, Anda dapat mengekspor lingkungan Anda tanpa info build:
Yang melepaskan lingkungan dari versi Python dan OS.
sumber
Saya menemukan mengekspor paket dalam format string saja lebih portabel daripada mengekspor keseluruhan
conda
lingkungan. Seperti jawaban sebelumnya yang sudah disarankan:Namun, ini
requirements.txt
berisi nomor build yang tidak portabel antar sistem operasi, misalnya antaraMac
danUbuntu
. Diconda env export
kami memiliki opsi--no-builds
tetapi tidak denganconda list -e
, jadi kami dapat menghapus nomor build dengan mengeluarkan perintah berikut:Dan buat ulang lingkungan di komputer lain:
sumber
sed
perintah bekerja cukup bagus. Saya harus menghapus versi tambalan. Jadimajor.minor.patch
untukmajor.minor
dan itu berhasil. Ternyata, nomor patch yang lebih rendah telah dihapus oleh repo utama.sumber