คำตอบสั้น ๆ ก็คือจากประสบการณ์ของฉันโดยทั่วไปไม่สำคัญว่าคุณจะใช้ตัวไหน
คำตอบยาว:
ดังนั้นจึงconda-forge
เป็นช่องทางเพิ่มเติมที่อาจติดตั้งแพ็คเกจ ในแง่นี้มันไม่ได้พิเศษไปกว่าช่องเริ่มต้นหรือช่องอื่น ๆ อีกหลายร้อย (หลายพัน?) ที่ผู้คนโพสต์แพ็กเกจไป คุณสามารถเพิ่มช่องของคุณเองได้หากคุณสมัครที่https://anaconda.orgและอัปโหลดแพ็คเกจ Conda ของคุณเอง
ที่นี่เราต้องสร้างความแตกต่างซึ่งฉันคิดว่าคุณไม่ชัดเจนจากวลีของคุณในคำถามระหว่างconda
ตัวจัดการแพ็คเกจข้ามแพลตฟอร์มและconda-forge
ช่องแพ็คเกจ Anaconda Inc. (เดิมชื่อ Continuum IO) ซึ่งเป็นผู้พัฒนาซอฟต์แวร์หลักconda
ยังดูแลช่องทางแพ็กเกจแยกต่างหากซึ่งเป็นค่าเริ่มต้นเมื่อคุณพิมพ์conda install packagename
โดยไม่ต้องเปลี่ยนตัวเลือกใด ๆ
มีสามวิธีในการเปลี่ยนตัวเลือกสำหรับช่อง สองรายการแรกจะเสร็จสิ้นทุกครั้งที่คุณติดตั้งแพ็กเกจและแพ็กเกจสุดท้ายจะยังคงอยู่ สิ่งแรกคือการระบุช่องทุกครั้งที่คุณติดตั้งแพ็คเกจ:
conda install -c some-channel packagename
แน่นอนว่าต้องมีแพ็กเกจอยู่ในช่องนั้น วิธีนี้จะติดตั้งและการอ้างอิงจากpackagename
some-channel
หรือคุณสามารถระบุ:
conda install some-channel::packagename
แพคเกจยังคงมีอยู่some-channel
แต่ตอนนี้packagename
จะถูกดึงออกมาsome-channel
เท่านั้น แพ็กเกจอื่น ๆ ที่จำเป็นเพื่อตอบสนองการอ้างอิงจะถูกค้นหาจากรายการช่องเริ่มต้นของคุณ
หากต้องการดูการกำหนดค่าช่องของคุณคุณสามารถเขียน:
conda config --show channels
คุณสามารถควบคุมลำดับที่จะค้นหาช่องconda config
ได้ คุณสามารถเขียน:
conda config --add channels some-channel
เพื่อเพิ่มช่องsome-channel
ที่ด้านบนของchannels
รายการกำหนดค่า สิ่งนี้ให้some-channel
ความสำคัญสูงสุด ลำดับความสำคัญเป็นตัวกำหนด ( บางส่วน ) ว่าช่องใดถูกเลือกเมื่อมีมากกว่าหนึ่งช่องทางที่มีแพ็คเกจเฉพาะ หากต้องการเพิ่มช่องที่ท้ายรายการและให้ลำดับความสำคัญต่ำที่สุดให้พิมพ์
conda config --append channels some-channel
หากคุณต้องการลบช่องที่คุณเพิ่มคุณสามารถทำได้โดยการเขียน
conda config --remove channels some-channel
ดู
conda config -h
สำหรับตัวเลือกเพิ่มเติม
จากที่กล่าวมาทั้งหมดมีเหตุผลหลักสี่ประการที่จะใช้conda-forge
ช่องนี้แทนdefaults
ช่องที่ดูแลโดย Anaconda:
- แพ็กเกจบน
conda-forge
อาจเป็นข้อมูลล่าสุดมากกว่าแพ็กเกจในdefaults
ช่อง
- มีแพ็คเกจใน
conda-forge
ช่องที่ไม่สามารถใช้ได้จากdefaults
- คุณต้องการใช้การอ้างอิงเช่น
openblas
(from conda-forge
) แทนmkl
(from defaults
)
- หากคุณกำลังติดตั้งแพ็กเกจที่ต้องใช้ไลบรารีที่คอมไพล์แล้ว (เช่นส่วนขยาย C หรือ wrapper รอบ ๆ ไลบรารี C) อาจลดโอกาสที่จะเข้ากันไม่ได้หากคุณติดตั้งแพ็กเกจทั้งหมดในสภาพแวดล้อมจากแชนเนลเดียวเนื่องจากไบนารี ความเข้ากันได้ของไลบรารี C พื้นฐาน (แต่คำแนะนำนี้อาจล้าสมัย / มีการเปลี่ยนแปลงในอนาคต)
conda
เป็นผู้จัดการแพ็คเกจและconda-forge
เป็นช่องทาง อาจจะเป็นเรื่องจริงเมื่อถามคำถามนี้?