การลบสภาพแวดล้อม Conda


224

ฉันต้องการลบสภาพแวดล้อมบางอย่างที่สร้างขึ้นด้วย conda ฉันจะบรรลุสิ่งนั้นได้อย่างไร สมมติว่าฉันมีสภาพแวดล้อม testenv ที่ใช้งานอยู่ ฉันลองโดยทำตามเอกสารด้วย:

$ conda env remove

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

จากนั้นฉันจะปิดการใช้งาน:

$ source deactivate

ฉันลองรันคำสั่งอีกครั้งเพื่อลบมันและฉันยังคงได้รับข้อผิดพลาดเดิม เกิดอะไรขึ้นที่นี่?


2
ตรวจสอบให้แน่ใจว่าคุณกำลังใช้งานเทอร์มินัลในฐานะผู้ดูแลระบบมิฉะนั้นคำสั่งจะทำงานได้สำเร็จโดยไม่ทิ้งข้อผิดพลาดใด ๆ แต่จะไม่ลบ env
सत्यमेवजयते

คำตอบ:


310

คุณอาจไม่ได้ปิดการใช้งานสภาพแวดล้อม Conda อย่างเต็มที่ - โปรดจำไว้ว่าคำสั่งที่คุณต้องใช้กับ Conda คือconda deactivate(สำหรับเวอร์ชันเก่าใช้source deactivate) ดังนั้นจึงควรที่จะเริ่มเชลล์ใหม่และเปิดใช้งานสภาพแวดล้อมก่อนที่คุณจะลอง จากนั้นปิดการใช้งาน

คุณสามารถใช้คำสั่ง

conda env remove -n ENV_NAME

เพื่อลบสภาพแวดล้อมด้วยชื่อนั้น ( --nameเทียบเท่า-n)

โปรดทราบว่าคุณสามารถวางสภาพแวดล้อมได้ทุกที่ที่คุณต้องการใช้-p /path/to/envแทนที่จะ-n ENV_NAMEสร้างและลบสภาพแวดล้อมหากคุณเลือก พวกเขาไม่จำเป็นต้องอยู่ในการติดตั้ง Conda ของคุณ

UPDATE, 30 มกราคม 2019 : ตั้งแต่ Conda 4.6 เป็นต้นไปconda activateคำสั่งจะกลายเป็นวิธีการใหม่อย่างเป็นทางการในการเปิดใช้งานสภาพแวดล้อมในทุกแพลตฟอร์ม การเปลี่ยนแปลงอธิบายไว้ในบล็อกโพสต์นี้


คุณถูกต้องฉันผิดเมื่อเขียนโพสต์ source deactivateฉันหมายถึง ขอบคุณ
Renato Damas

4
ที่จริงคุณสามารถใช้conda deactivateเช่นกันและใช้งานได้เช่นกัน อย่างน้อยในเวอร์ชัน 4.4.11
Renato Damas

ขอบคุณ แต่ไม่ใช่deactivateด้วยตัวเองใช่มั้ย
holdenweb

ใช่ทั้งสองsource deactivateหรือconda deactivate
Renato Damas

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

68

หลังจากตรวจสอบให้แน่ใจว่าสภาพแวดล้อมของคุณไม่ทำงานให้พิมพ์:

$ conda env remove --name ENVIRONMENT

3
นี่คือข้อมูลที่ฉันต้องการ คงจะดีถ้าconda env --helpให้มัน
R. Schreurs

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

1
ฉันส่งข้อผิดพลาดเกี่ยวกับความล้มเหลวในการอัปเดตข้อความช่วยเหลือและมีการทำเครื่องหมายว่าเป็นปัญหาง่ายสำหรับผู้เริ่มต้นดังนั้นจึงหวังว่าจะได้รับการแก้ไข
holdenweb

28

วิธีการทำงานของเอกสารอย่างเป็นทางการสำหรับฉัน:

conda remove --name myenv --all

conda env remove --name myenvหรือเพียงแค่

ในการตรวจสอบว่าสภาพแวดล้อมถูกลบออกในหน้าต่างเทอร์มินัลหรือพรอมต์อนาคอนดาของคุณให้เรียกใช้:

conda info --envs

รายการสภาพแวดล้อมที่แสดงไม่ควรแสดงสภาพแวดล้อมที่ถูกลบ

คุณ anaconda3 โฟลเดอร์สิ่งแวดล้อมอาจแสดงรายการโฟลเดอร์ว่างของสภาพแวดล้อมที่ถูกลบในโฟลเดอร์การติดตั้ง anaconda3 ของคุณเช่น:

/opt/anaconda3/envs

19

มี 3 วิธีในการบรรลุเป้าหมายโดยรวม สมมติว่าคุณมีสภาพแวดล้อมที่มีชื่อmyenv,

  1. conda env remove --name myenv, เป็นทางลัดสำหรับ-n--name

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

  3. ลบโฟลเดอร์ env โดยตรง (ไม่แนะนำ)

    # 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

หากคุณต้องการลบสภาพแวดล้อมโดยไม่ต้องแจ้งให้คุณตรวจสอบอีกครั้ง ใช้ทางลัดสำหรับ-y --yes(สำหรับการใช้งานทั่วโลกให้ตรวจสอบข้อความแจ้งเตือนแบบเงียบใน conda )

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

อ้างอิง

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

1
และทำไมการลบโฟลเดอร์ env ไม่แนะนำโดยตรง สิ่งที่อาจจะผิดไป?
NoName


13

ก่อนอื่นคุณต้องปิดการใช้งานสภาพแวดล้อมก่อนที่จะลบออก คุณสามารถลบสภาพแวดล้อม conda โดยใช้คำสั่งต่อไปนี้

สมมติว่าชื่อสภาพแวดล้อมของคุณคือ "sample_env" คุณสามารถลบสภาพแวดล้อมนี้โดยใช้

source deactivate    
conda remove -n sample_env --all

'- ทั้งหมด' จะถูกใช้เพื่อลบการอ้างอิงทั้งหมด


13

สภาพแวดล้อมที่สร้างด้วยแฟล็ก--prefixหรือ-pแฟล็กต้องถูกลบด้วย-pแฟล็ก ( ไม่ใช่ -n )

ตัวอย่างเช่น: conda remove -p </filepath/myenvironment> --allซึ่ง</filepath/myenvironment>จะถูกแทนที่ด้วยเส้นทางที่สมบูรณ์หรือสัมพันธ์กับสภาพแวดล้อม


1
ชื่อสภาพแวดล้อมของฉันรวมถึงพื้นที่เช่นenv ของฉัน วิธีนี้conda env remove -p path/to/my\ envทำงานในขณะที่conda env remove -n my\ envและconda env remove -n "my env"ไม่ได้
Ben


8

ใช้source deactivateเพื่อยกเลิกการทำงานของสภาพแวดล้อมก่อนที่จะลบออกแทนที่ ENV_NAME ด้วยสภาพแวดล้อมที่คุณต้องการลบ:

source deactivate
conda env remove -n ENV_NAME

7
คำอธิบายรหัสทำงานอย่างไรและวิธีการแก้ไขปัญหาในคำถามไม่ค่อยสามารถปรับปรุงคำตอบได้
MBT

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

7

ก่อนปิดการใช้งานสภาพแวดล้อมและกลับสู่สภาพแวดล้อมพื้นฐาน conda env remove -n <envname>จากฐานที่คุณควรจะสามารถที่จะเรียกใช้คำสั่ง นี้จะให้ข้อความ

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


6

ถ้าคุณอยู่ในฐาน :

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

ลบenv_nameโดย:

conda env remove -n env_name

หากคุณอยู่ในสภาพแวดล้อมenv_nameแล้ว:

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

ปิดใช้งานแล้วลบโดย:

conda deactivate env_name

conda env remove -n env_name

4

สิ่งนี้ใช้ได้กับฉัน:

conda env remove --name tensorflow

ทำงานให้ฉันด้วย conda env remove --name <name of your environment> ในภายหลังคุณสามารถลบโฟลเดอร์สภาพแวดล้อมจาก Anaconda หรือตำแหน่งติดตั้ง miniconda Anaconda\envs\<name of your environment>หรือMiniconda\envs\<name of your environment>
Giriraj Pawar


0

เนื่องจากคุณสามารถปิดใช้งานสภาพแวดล้อมที่ใช้งานได้เท่านั้นดังนั้นการปิดใช้งาน conda จึงไม่จำเป็นหรือไม่ยอมรับอาร์กิวเมนต์ ข้อความแสดงข้อผิดพลาดชัดเจนมากที่นี่

เพียงแค่เรียก conda ยกเลิกการใช้งาน https://github.com/conda/conda/issues/7296#issuecomment-389504269

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.