ฉันจะเปลี่ยนสภาพแวดล้อม conda ได้อย่างไร


284

ฉันมีชื่อสภาพแวดล้อม conda old_nameฉันจะเปลี่ยนชื่อเป็นnew_nameไม่มีการอ้างอิงได้อย่างไร


ดูโพสต์นี้เกี่ยวกับวิธีการโคลนสภาพแวดล้อมของ
คอนโด

คำตอบ:


458

คุณทำไม่ได้

วิธีแก้ปัญหาหนึ่งคือการสร้างสภาพแวดล้อมแบบโคลนแล้วลบแบบเดิม:

(โปรดจำไว้ว่าเกี่ยวกับการปิดใช้งานสภาพแวดล้อมปัจจุบันด้วยdeactivateบน Windows และsource deactivateบน macOS / Linux)

conda create --name new_name --clone old_name
conda remove --name old_name --all # or its alias: `conda env remove --name old_name`

วิธีนี้มีข้อเสียหลายประการ:

  1. ดาวน์โหลดแพ็คเกจใหม่ - คุณสามารถใช้--offlineflag เพื่อปิดการใช้งาน
  2. เวลาที่ใช้ในการคัดลอกไฟล์ของสภาพแวดล้อม
  3. การใช้ดิสก์คู่ชั่วคราว

มีปัญหาแบบเปิดที่ขอคุณสมบัตินี้


90
ทำไมถึงไม่มีใครเปลี่ยนชื่อคอนดาน env?
Charlie Parker

6
เพื่อออกจากงานสำหรับผู้ที่แยก conda และทำให้พวกเขาเข้าใจมากขึ้นระหว่างทาง: P: D
Saravanabalagi Ramachandran

3
อีกวิธีหนึ่งคือการโคลนสภาพแวดล้อมconda create --name new_name --clone old_nameจากนั้นคุณสามารถลบเก่า
Y0da

4
คำเตือน - ฉันพยายามทำสิ่งนี้และพบข้อผิดพลาดที่แปลกประหลาด - ฉัน.bashrcไม่ทำงานอีกต่อไปและการพยายามเรียกใช้pytestจะล้มเหลวโดยพยายามอ้างอิงสภาพแวดล้อมที่ถูกลบไปแล้วในตอนนี้ ฉันลองกระสุนใหม่แล้วรีสตาร์ทโดยไม่มีโชค จบลงด้วยการต้องระเบิดสภาพแวดล้อมใหม่จากนั้นเริ่มต้นด้วยการติดตั้งใหม่ทั้งหมด ช้าลง แต่ดูเหมือนจะใช้งานได้จริงตอนนี้
dwanderson

3
@dandanderson มากกว่า 5,000 ขณะที่ฉันจะลองใช้คำตอบนี้ แต่ฉันจะดึง bandaid ออกและสร้าง env ที่ไม่ดีของฉันขึ้นมาใหม่
bgoodr

13

จากความคิดเห็นที่เป็นประโยชน์ของdwandersonฉันสามารถทำสิ่งนี้ได้ใน Bash one-liner:

conda create --name envpython2 --file <(conda list -n env1 -e )

ชื่อ env ที่ไม่ดีของฉันคือ "env1" และอันใหม่ที่ฉันต้องการโคลนจากมันคือ "envpython2"


1
พบข้อผิดพลาดในการพูดPackagesNotFoundError: The following packages are not available from current channelsกับสคริปต์นี้ สคริปต์นี้อาจใช้งานได้เฉพาะเมื่อคุณไม่มีแพ็คเกจที่ติดตั้งด้วย pip และที่ไม่สามารถใช้งานได้ใน conda ในสภาพแวดล้อมที่มีอยู่
Yuxuan Chen

5

conda create --name new_name --copy --clone old_name จะดีกว่า

ฉันใช้ตัวเลือกconda create --name new_name --clone old_nameที่ไม่มี--copy แต่พบว่าตัวแบ่ง pip เป็น ...

URL ต่อไปนี้อาจช่วยใน การติดตั้ง tensorflow ในสภาพแวดล้อมแบบ condoned ที่ทำให้เกิดสภาพแวดล้อมแบบ conda ที่ถูกโคลน


-41

เพียงเปิดโฟลเดอร์ "\ Anaconda \ envs" และเปลี่ยนชื่อ

ก่อนที่จะเปลี่ยนชื่อ ก่อนที่จะเปลี่ยนชื่อ

หลังจากเปลี่ยนชื่อ หลังจากเปลี่ยนชื่อ


13
คำตอบนี้แบ่ง jupyter Jupyter รายงานว่า "ไม่พบพา ธ " เมื่อพยายามเปิดเคอร์เนลหลาม
MD004

5
มีความเสี่ยงอย่างมากที่จะทำลายสภาพแวดล้อม
FabienP

2
อย่าทำอย่างนี้.
BenP

เหตุผลข้อหนึ่งข้อนี้เป็นความคิดที่ไม่ดี - มีไฟล์อยู่ในไดเร็กทอรี env / name ที่มีพา ธ สัมบูรณ์ไปยังไดเร็กทอรีนั้น หากคุณย้ายไดเรกทอรีเส้นทางจะไม่ทำงานตามที่ชี้ไปยังไดเรกทอรีเก่าที่ไม่มีอยู่อีกต่อไป: envs / ds_tensorflow / Lib / site-packages / sipconfig.py: 'default_bin_dir': 'C: / Users / me / miniconda3 / envs / ds_tensorflow ', envs / ds_tensorflow / Lib / ไซต์ - แพ็คเกจ / sipconfig.py:' default_mod_dir ':' C: / ผู้ใช้ / ฉัน / miniconda3 / envs / ds_tensorflow \\ Lib \\ ไซต์แพคเกจ ',
โดนัลด์ S
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.