วิธีระบุตำแหน่งสภาพแวดล้อมใหม่สำหรับ conda create


117

ตำแหน่งเริ่มต้นสำหรับแพ็คเกจคือโฟลเดอร์. คอนดาในโฮมไดเร็กทอรีของฉัน อย่างไรก็ตามบนเซิร์ฟเวอร์ที่ฉันใช้มีการ จำกัด พื้นที่ที่ฉันสามารถใช้ได้อย่างเข้มงวดมากซึ่งโดยพื้นฐานแล้วฉันจะหลีกเลี่ยงไม่ให้ฉันใส่อะไรไว้ในไดเร็กทอรีหลักของฉัน ฉันจะระบุตำแหน่งสำหรับสภาพแวดล้อมเสมือนที่ต้องการสร้างได้อย่างไร ขอบคุณ! เซิร์ฟเวอร์กำลังเรียกใช้ Ubuntu


10
มีอะไรผิดปกติกับคำตอบหรือทำไมคุณไม่ยอมรับคำตอบ? คุณสามารถแสดงความคิดเห็นได้ตลอดเวลาหากมีสิ่งที่คุณไม่ชอบ
Pinocchio

3
@linX อย่าลืมโหวตคำตอบที่คุณชอบและยอมรับคำตอบที่ดีที่สุดหรือคำตอบที่แก้ปัญหาของคุณได้ สิ่งนี้ทำให้ผู้เขียนได้รับรางวัลเล็กน้อยและเป็นแรงจูงใจให้พวกเขาให้คำตอบที่ดีและเป็นประโยชน์ต่อไป
Mike Williamson

คำตอบ:


128

ใช้อ็อพชัน--prefixหรือ-pเพื่อระบุตำแหน่งที่จะเขียนไฟล์สภาวะแวดล้อม ตัวอย่างเช่น:

conda create --prefix /tmp/test-env python=2.7

จะสร้างสภาพแวดล้อมที่มีชื่อ/tmp/test-envซึ่งอาศัยอยู่ในแทนการเริ่มต้น/tmp/.conda


7
แต่เมื่อคุณย้ายที่ตั้งของ env แล้ว conda จะรู้ได้อย่างไรว่าจะหาที่ตั้งของ env ใหม่ได้อย่างไร?
Pinocchio

4
มีไดเร็กทอรีสำหรับแต่ละสภาวะแวดล้อมภายใน ~ / .conda / envs ทำตามคำแนะนำของผู้อื่นและใช้ --prefix เพื่อติดตั้งทุกที่ที่คุณต้องการ จากนั้นสร้าง symlink จากกัน: ln -s / shared / eng / conds / envs / test-env ~ / .conda / envs / test-env
Robert Lugg

1
ทำไมไม่conda create --name hbf_env --prefix /om2/user/username python=3.6 ทำงาน? พูดว่า-bash: /home/username/.conda/envs/hbf_env/bin/conda: No such file or directory?
Charlie Parker

7
ชาร์ลีฉันไม่แน่ใจว่าทำไมคุณถึงได้รับข้อความแสดงข้อผิดพลาดเกี่ยวกับไฟล์ / ไดเร็กทอรีที่หายไป แต่ไม่--nameสามารถใช้กับสิ่ง--prefixนั้นได้ สมมติว่า CONDA conda create --prefix /om2/user/username/hbf_env python=3.6มีการติดตั้งอย่างถูกต้องคำสั่งที่เกี่ยวข้องจะเป็น สิ่งนี้จะสร้าง env ที่มีชื่อhbf_envในสถานที่ตั้ง/om2/user/username/
Thomas Fauskanger

9
@ThomasFauskanger ดูเหมือนว่าคำสั่งนำหน้าไม่ได้สร้างชื่อสำหรับสภาพแวดล้อมอย่างน้อยสำหรับฉัน .. หลังจากconda create --prefix hbf_envในไดเร็กทอรีโลคัลconda info --envsแสดงชื่อว่างเปล่า แต่แสดงเส้นทางแบบเต็ม ... การเปิดใช้งานสภาพแวดล้อมจำเป็นที่ฉันจะต้องพิมพ์ออก เส้นทางแบบเต็ม (conda ไม่สามารถค้นหาสภาพแวดล้อมได้หากฉันพิมพ์ชื่อ)
Joshua Zastrow

55

เหมือนที่พอลบอกใช้

conda create --prefix=/users/.../yourEnvName python=x.x

หากคุณอยู่ในโฟลเดอร์ที่คุณต้องการสร้างสภาพแวดล้อมเสมือนของคุณให้ละเว้นเส้นทางและใช้

conda create --prefix=yourEnvName python=x.x

conda ติดตามเฉพาะสภาพแวดล้อมที่รวมอยู่ในโฟลเดอร์ envs ภายในโฟลเดอร์ anaconda ในครั้งต่อไปที่คุณจะต้องเปิดใช้งาน env ใหม่ของคุณให้ย้ายไปที่โฟลเดอร์ที่คุณสร้างและเปิดใช้งานด้วย

source activate yourEnvName

2
โปรดทราบว่าหากคุณลืมชื่อสภาพแวดล้อมคุณสามารถใช้เส้นทางแบบเต็มของไดเร็กทอรีที่มีสภาพแวดล้อมของคุณได้
tjb

2
คุณสามารถบอก conda ให้มองหา envs ในตำแหน่งอื่นโดยใช้.condarcไฟล์กำหนดค่า conda.io/docs/user-guide/configuration/…
รุนแรง

สิ่งนี้สร้างสภาพแวดล้อมที่ไม่มีชื่อเฉพาะไดเร็กทอรี มีวิธีใดในการสร้างชื่อภายในคำสั่งหรือไม่? Conda ไม่ยอมให้ฉันระบุทั้งสองอย่าง
Kyouma

16

ในขณะที่ใช้--prefixตัวเลือกนี้คุณต้องใช้อย่างชัดเจนทุกครั้งที่สร้างสภาพแวดล้อม หากคุณต้องการให้สภาพแวดล้อมของคุณถูกจัดเก็บไว้ที่อื่นตามค่าเริ่มต้นคุณสามารถกำหนดค่าใน.condarcไฟล์ของคุณได้

โปรดดู: https://conda.io/docs/user-guide/configuration/use-condarc.html#specify-environment-directories-envs-dirs


7
หากคุณยังไม่ได้เปลี่ยนตัวแปรนี้คุณสามารถกำหนดค่าได้โดยเรียกใช้คำสั่งนี้:conda config --append envs_dirs /path/to/envs
Arthur Tacca

7
เพิ่มenv_prompt: ({name})ไปที่ ~ / .condarc ด้วยถ้าคุณได้รับเส้นทางแบบเต็มในพรอมต์ของคุณ
plonker13

16

หากคุณต้องการใช้--prefixหรือ-pอาร์กิวเมนต์ แต่ต้องการหลีกเลี่ยงการใช้เส้นทางแบบเต็มของสภาพแวดล้อมเพื่อเปิดใช้งานคุณต้องแก้ไข.condarcไฟล์กำหนดค่าก่อนที่จะสร้างสภาพแวดล้อม

.condarcไฟล์ในไดเรกทอรีบ้าน; C:\Users\<user>บน Windows แก้ไขค่าภายใต้envs_dirsคีย์เพื่อรวมเส้นทางที่กำหนดเองสำหรับสภาพแวดล้อมของคุณ สมมติว่าเส้นทางที่กำหนดเองคือD:\envsไฟล์ควรจะมีลักษณะดังนี้:

ssl_verify: true
channels:
  - defaults
envs_dirs:
  - C:\Users\<user>\Anaconda3\envs
  - D:\envs

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

ภาพหน้าจอบรรทัดคำสั่ง

โดยสรุปถ้าคุณแก้ไข.condarcจะรวมD:\envsและเรียกใช้conda env create -p D:\envs\myenv python=x.xแล้วactivate myenv(หรือsource activate myenvบน Linux) ควรจะทำงาน

หวังว่าจะช่วยได้!

ปล. ฉันสะดุดกับสิ่งนี้จากการลองผิดลองถูก ฉันคิดว่าสิ่งที่เกิดขึ้นคือเมื่อคุณแก้ไขenvs_dirsคีย์การอัปเดต conda ~\.conda\environments.txtเพื่อรวมสภาพแวดล้อมที่พบในไดเรกทอรีทั้งหมดที่ระบุไว้ภายใต้envs_dirsเพื่อให้สามารถเข้าถึงได้โดยไม่ต้องใช้พา ธ สัมบูรณ์


8

คุณสามารถสร้างแบบนี้

conda create --prefix C:/tensorflow2 python=3.7

และคุณไม่จำเป็นต้องย้ายไปที่โฟลเดอร์นั้นเพื่อเปิดใช้งาน

# To activate this environment, use:
# > activate C:\tensorflow2

อย่างที่คุณเห็นฉันทำแบบนี้

D:\Development_Avector\PycharmProjects\TensorFlow>activate C:\tensorflow2

(C:\tensorflow2) D:\Development_Avector\PycharmProjects\TensorFlow>

(C:\tensorflow2) D:\Development_Avector\PycharmProjects\TensorFlow>conda --version
conda 4.5.13

1
ในขณะที่ OP กล่าวว่าพวกเขาใช้ Ubuntu แต่ +1 เพื่อให้โซลูชันบนเครื่อง Windows :)
Mike Williamson

3

ฉันเจอสถานการณ์คล้าย ๆ กัน ฉันมีสิทธิ์เข้าถึงไดรฟ์ข้อมูลขนาดใหญ่ ขึ้นอยู่กับสถานการณ์ของคุณและการเข้าถึงเซิร์ฟเวอร์ที่คุณสามารถพิจารณาได้

ln -s /datavol/path/to/your/.conda /home/user/.conda

จากนั้นคำสั่ง conda ที่ตามมาจะนำข้อมูลไปยัง symlinked dir ใน datavol


1
นี่เป็นคำตอบที่ถูกต้องจริงๆในความคิดของฉัน - คำถามเดิมคือเกี่ยวกับสถานที่สำหรับบรรจุภัณฑ์และมีความคลุมเครืออยู่บ้าง แต่เมื่อเร็ว ๆ นี้ฉันพบปัญหานี้และได้ทำการตรวจสอบเล็กน้อย มีสองไดเรกทอรีที่สำคัญภายใต้การมี$HOME/.conda, และenvs pkgsโดยใช้--prefixโครงการดังกล่าวข้างต้นสร้างสภาพแวดล้อมที่อื่น $HOME/.conda/pkgsแต่ทุกการดาวน์โหลดไฟล์แพคเกจยังคงไป โซลูชัน symlink ที่นำเสนอนี้แก้ไขทั้งสภาพแวดล้อมและตำแหน่งการดาวน์โหลด
Andrew Reid

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