Menghapus lingkungan Conda


223

Saya ingin menghapus lingkungan tertentu yang dibuat dengan conda. Bagaimana saya bisa mencapainya? Katakanlah saya memiliki lingkungan testenv aktif. Saya mencoba, dengan mengikuti dokumentasi , dengan:

$ conda env remove

CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again

Saya kemudian menonaktifkannya:

$ source deactivate

Saya mencoba menjalankan lagi perintah untuk menghapusnya dan saya masih mendapatkan kesalahan yang sama. Apa yang salah di sini?


2
Pastikan Anda menjalankan terminal sebagai administrator jika tidak, perintah akan berhasil dijalankan tanpa menimbulkan kesalahan apa pun tetapi env tidak akan dihapus.
सत्यमेव जयते

Jawaban:


308

Anda mungkin tidak sepenuhnya menonaktifkan lingkungan Conda - ingat, perintah yang perlu Anda gunakan dengan Conda adalah conda deactivate(untuk versi yang lebih lama, gunakan source deactivate). Jadi mungkin bijaksana untuk memulai shell baru dan mengaktifkan lingkungan di dalamnya sebelum Anda mencoba. Kemudian nonaktifkan.

Anda bisa menggunakan perintah

conda env remove -n ENV_NAME

untuk menghapus lingkungan dengan nama itu. ( --namesetara dengan -n)

Perhatikan bahwa Anda juga dapat menempatkan lingkungan di mana saja yang ingin Anda gunakan -p /path/to/envalih-alih -n ENV_NAMEsaat membuat dan menghapus lingkungan, jika Anda memilih. Mereka tidak harus tinggal di instalasi conda Anda.

UPDATE, 30 Jan 2019 : Dari Conda 4.6 dan selanjutnya conda activateperintah menjadi cara resmi baru untuk mengaktifkan lingkungan di semua platform. Perubahan dijelaskan dalam posting blog Anaconda ini


Anda benar, kesalahan saya saat menulis posting. Maksud saya source deactivate. Terima kasih
Renato Damas

4
Sebenarnya Anda bisa menggunakan conda deactivatejuga dan berfungsi juga. Setidaknya dalam versi 4.4.11
Renato Damas

Terima kasih. Tapi bukan hanya deactivatesendirian, bukan?
holdenweb

Ya, salah satu source deactivateatauconda deactivate
Renato Damas

EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENVIRONMENT
user924

68

Setelah memastikan lingkungan Anda tidak aktif, ketikkan:

$ conda env remove --name ENVIRONMENT

3
Ini adalah informasi yang saya butuhkan. Pasti menyenangkan jika conda env --helptelah memberikannya.
R. Schreurs

EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENVIRONMENT
user924

1
Saya mengirimkan bug tentang kegagalan untuk memperbarui teks bantuan, dan itu ditandai sebagai masalah yang mudah bagi pemula, jadi ada harapan untuk memperbaikinya.
holdenweb

28

Cara dokumentasi resmi bekerja untuk saya:

conda remove --name myenv --all

Atau adil conda env remove --name myenv.

Untuk memverifikasi bahwa lingkungan telah dihapus, di jendela terminal Anda atau Prompt Anaconda, jalankan:

conda info --envs

Daftar lingkungan yang ditampilkan tidak boleh memperlihatkan lingkungan yang dihapus.

Folder lingkungan anaconda3 Anda mungkin mendaftar folder kosong dari lingkungan yang dihapus di folder instalasi anaconda3 Anda, seperti:

/opt/anaconda3/envs

19

Ada 3 cara untuk mencapai ini secara total. Dengan asumsi Anda memiliki lingkungan bernama myenv,

  1. conda env remove --name myenv, -nadalah jalan pintas untuk --name.

  2. conda remove --name myenv --all.

  3. Hapus folder env secara langsung. (Tidak direkomendasikan)

    # list environments and their locations
    conda env list
    # or
    # conda info --envs
    
    # delete the folder listed
    rm -rf /Users/username/.local/share/conda/envs/myenv

Jika Anda ingin menghapus lingkungan tanpa meminta Anda memeriksa lagi. Gunakan -y, jalan pintas untuk --yes. (Untuk penggunaan global periksa prompt bisu di conda )

conda env remove -n myenv -y
conda remove -n myenv --all -y

Referensi

  • conda env --help
  • conda remove --help

1
Dan mengapa menghapus folder env secara langsung tidak disarankan? Apa yang mungkin salah?
NoName


13

Pertama, Anda harus menonaktifkan lingkungan Anda sebelum menghapusnya. Anda dapat menghapus lingkungan conda dengan menggunakan perintah berikut

Misalkan nama lingkungan Anda adalah "sample_env", Anda dapat menghapus lingkungan ini dengan menggunakan

source deactivate    
conda remove -n sample_env --all

'--all' akan digunakan untuk menghapus semua dependensi


13

Lingkungan yang dibuat dengan bendera --prefixatau -pharus dihapus dengan -pbendera ( tidak -n ).

Sebagai contoh:, conda remove -p </filepath/myenvironment> --alldi mana </filepath/myenvironment>diganti dengan path lengkap atau relatif ke lingkungan.


1
Nama lingkungan saya termasuk spasi, seperti env saya . Metode ini, conda env remove -p path/to/my\ envbekerja sementara conda env remove -n my\ envdan conda env remove -n "my env"tidak.
Ben


8

Gunakan source deactivateuntuk menonaktifkan lingkungan sebelum menghapusnya, ganti ENV_NAME dengan lingkungan yang ingin Anda hapus:

source deactivate
conda env remove -n ENV_NAME

7
Penjelasan, apa yang dilakukan kode dan bagaimana hal ini mengatasi masalah dalam pertanyaan, jarang gagal meningkatkan jawaban.
MBT

EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENV_NAME
user924

7

Pertama nonaktifkan lingkungan dan kembali ke lingkungan dasar. Dari pangkalan, Anda harus dapat menjalankan perintah conda env remove -n <envname>. Ini akan memberi Anda pesan

Remove all packages in environment C:\Users\<username>\AppData\Local\Continuum\anaconda3\envs\{envname}:


5

jika Anda berada di basis :

(base) HP-Compaq-Elite-8300-CMT:~$ 

hapus env_name dengan:

conda env remove -n env_name

jika Anda sudah berada di lingkungan env_name :

(env_name) HP-Compaq-Elite-8300-CMT:~$ 

nonaktifkan kemudian hapus dengan:

conda deactivate env_name

conda env remove -n env_name

4

Ini bekerja untuk saya:

conda env remove --name tensorflow

Bekerja untuk saya juga. conda env remove --name <name of your environment> Kemudian Anda dapat menghapus folder lingkungan dari Anaconda atau lokasi pemasangan miniconda Anaconda\envs\<name of your environment>atauMiniconda\envs\<name of your environment>
Giriraj Pawar

1

Untuk menghapus lingkungan conda lengkap:

Conda hapus --name YOUR_CONDA_ENV_NAME --all


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.