Saat menginstal paket di requirement.txt menggunakan Conda melalui perintah berikut
conda install --yes --file requirements.txt
Jika sebuah paket di requirement.txt tidak tersedia, maka ia akan memunculkan "No package error" seperti yang ditunjukkan di bawah ini:
Menggunakan situs Anaconda Cloud api https://api.anaconda.org
Mengambil metadata paket: ....
Kesalahan: Tidak ada paket yang ditemukan di saluran linux-64 saat ini yang cocok: nimfa == 1.2.3
Anda dapat mencari paket ini di anaconda.org dengan
anaconda search -t conda nimfa ==1.2.3
Alih-alih memberikan kesalahan, apakah mungkin untuk mengubah perilaku ini sehingga menginstal semua paket yang tersedia di requirement.txt dan memberikan peringatan untuk paket yang tidak tersedia?
Saya ingin ini karena, paket nimfa yang dikatakan error tidak tersedia, dapat diinstal dengan pip. Jadi jika saya dapat mengubah perilaku conda install --yes --file requirements.txt
untuk hanya memberikan peringatan untuk paket yang tidak tersedia, saya dapat menindaklanjutinya dengan perintah pip install -r requirments.txt
di .travis.yml sehingga TravisCI mencoba menginstalnya dari tempat mana pun yang tersedia.
pip install
memaketkan yang tidak tersedia menggunakanconda install
, saat melakukan iterasi?FOR /F "delims=~" %f in (requirements.txt) DO conda install --yes "%f" || pip install "%f"
Bekerja dengan sangat baik. Terima kasih!while read req; do if [[ $req != "#"* ]]; then conda install --yes $requirement || pip install $requirement; fi; done < requirements.txt
Anda dapat melakukan ini seperti yang disebutkan dalam ini
Ekspor ke file .yml
Untuk mereproduksi:
sumber
Bagi mereka yang mencari, saya menggunakan ini sebagai solusi @TillHoffmann untuk cangkang ikan:
$ while read requirement; conda install --yes $requirement; end < requirements.txt
Dan
$ while read requirement; conda install --yes $requirement;or pip install $requirement; end < requirements.txt
sumber
Jawaban Pbms di sini adalah cara yang tepat untuk melakukannya, dengan asumsi Anda memiliki lingkungan yang ada untuk disalin. Conda sepenuhnya mampu menginstal paket Conda dan paket pip, seperti yang tercantum di
environment.yml
. Saya ingin mendokumentasikan keseluruhan proses secara lebih rinci. Perhatikan bahwa saya menggunakan lingkungan berbasis folder, itulah sebabnya saya menambahkan--prefix [path to environment folder]
sebagian besar perintah.Katakanlah Anda menginstal lingkungan untuk proyek yang ada ke folder yang disebut
env
di folder saat ini, seperti ini:Anda akan menghasilkan
environment.yml
untuk lingkungan proyek itu seperti ini:Anda akan membuat lingkungan baru dalam beberapa folder lain dengan menyalin
environment.yml
ke sana dan kemudian menjalankannya dari sana:Anda akan mendapatkan lingkungan yang sudah ada untuk dicocokkan
environment.yml
dengan sekali lagi menyalinenvironment.yml
ke sana dan kemudian menjalankannya dari sana:Dengan lingkungan yang dimaksud aktif, Anda akan memverifikasi status paketnya seperti ini:
Ini adalah versi singkat dari apa yang mungkin dicetak oleh perintah itu (perhatikan bahwa paket pip ditandai
pypi
):# Name Version Build Channel pip 19.2.2 py37_0 python 3.7.4 h5263a28_0 numpy 1.16.4 py37h19fb1c0_0 pandas 0.25.1 py37ha925a31_0 pyodbc 4.0.27 py37ha925a31_0 ibm-db 3.0.1 pypi_0 pypi ibm-db-sa 0.3.5 pypi_0 pypi
Akhirnya, ini adalah versi ringkasan dari apa yang
environment.yml
mungkin terlihat (perhatikan bahwa paket pip terdaftar dalam kategorinya sendiri):dependencies: - pip=19.2.2=py37_0 - python=3.7.4=h5263a28_0 - numpy=1.16.4=py37h19fb1c0_0 - pandas=0.25.1=py37ha925a31_0 - pyodbc=4.0.27=py37ha925a31_0 - pip: - ibm-db==3.0.1 - ibm-db-sa==0.3.5
Ketahuilah bahwa menggunakan Conda dan pip bersama-sama dapat menyebabkan mulas karena keduanya tanpa sadar dapat menghilangkan ketergantungan satu sama lain. Anda diharapkan untuk menginstal semua paket Conda Anda terlebih dahulu dan kemudian semua paket pip Anda sesudahnya, daripada bergantian di antara keduanya. Jika lingkungan Anda rusak, rekomendasi resminya adalah menghapus dan membuatnya kembali (dari
environment.yml
file Anda ). Untuk lebih jelasnya, lihat panduan ini:https://www.anaconda.com/using-pip-in-a-conda-environment/
sumber