คำตอบสั้น ๆ ก็คือจากประสบการณ์ของฉันโดยทั่วไปไม่สำคัญว่าคุณจะใช้ตัวไหน
คำตอบยาว:
ดังนั้นจึง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เป็นช่องทาง อาจจะเป็นเรื่องจริงเมื่อถามคำถามนี้?