Conda: การติดตั้ง / อัปเกรดโดยตรงจาก github


112

ฉันสามารถติดตั้ง / อัพเกรดแพ็คเกจจาก GitHub โดยใช้ไฟล์ conda ได้หรือไม่?

ตัวอย่างเช่นpipฉันสามารถทำได้:

pip install git+git://github.com/scrappy/scrappy@master

ติดตั้ง scrappyโดยตรงจากmasterสาขาใน GitHub ฉันสามารถทำสิ่งที่เทียบเท่ากับ conda ได้หรือไม่?

หากเป็นไปไม่ได้คุณควรติดตั้ง pip กับ conda และจัดการการติดตั้งภายในด้วย pip หรือไม่

คำตอบ:


74

conda-envมีการสนับสนุนที่ดีสำหรับเรื่องนี้ตอนนี้ผ่าน ตัวอย่างเช่นตอนนี้คุณสามารถทำ:

name: sample_env
channels:
dependencies:
   - requests
   - bokeh>=0.10.0
   - pip:
     - "--editable=git+https://github.com/pythonforfacebook/facebook-sdk.git@8c0d34291aaafec00e02eaa71cc2a242790a0fcc#egg=facebook_sdk-master"

มันยังคงเรียก pip ภายใต้ฝาครอบ แต่ตอนนี้คุณสามารถรวมคุณสมบัติ conda และ pip ​​package ไว้ในenvironment.ymlไฟล์เดียวได้แล้ว

หากคุณต้องการที่จะปรับปรุงสภาพแวดล้อมที่รากของคุณกับแฟ้มนี้คุณจะต้องบันทึกรายการนี้ไปยังแฟ้ม (ตัวอย่างenvironment.yml) conda env update -f environment.ymlแล้วเรียกใช้คำสั่ง:

มีแนวโน้มว่าคุณจะต้องการสร้างสภาพแวดล้อมใหม่:

conda env create -f environment.yml (เปลี่ยนแปลงตามที่ควรในความคิดเห็น)


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

@hobs - ฉันแก้ไขคำตอบเพื่อตอบคำถามของคุณแล้ว
Aron Ahmadia

1
เป็นจริงconda env create -f environment.ymlกับธงย่อมาจาก conda create-f--force
Perfi

1
มีการบันทึกไว้ที่ไหนสักแห่ง?
guilhermecgs

1
@Perfi ความผิดพลาดของฉันฉันคิดว่าคุณบอกว่า-fในการconda env createเรียกใช้บังคับและไม่ได้สำหรับconda createความผิดพลาดของฉันที่ไม่อ่านอย่างรอบคอบ
จะ

104

คำตอบล้าสมัย คุณเพียงแค่ต้องติดตั้ง pip และ git conda จากนั้นคุณสามารถใช้ pip ได้ตามปกติ:

  1. เปิดใช้งานสภาพแวดล้อม conda ของคุณ source activate myenv

  2. conda install git pip

  3. pip install git+git://github.com/scrappy/scrappy@master


4
นอกจากนี้คุณต้องใช้ pip ที่อยู่ใน envs ของคุณเช่นในกรณีของฉัน pip ที่ฉันใช้คือ "/ home / ubuntu / anaconda3 / envs / tensorflow_p36 / bin / pip" pip นี้เกิดขึ้นหลังจากที่คุณทำการติดตั้ง conda คุณสามารถเพิ่ม bin dir นี้กับ $ PATH ของคุณได้
faizan

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

1
@AntonAndreev ข้อมูลจำเพาะรองรับทั้งgit+gitและgit+httpsบวกอื่น ๆ อย่างไรก็ตามตัวอย่างข้อมูลจำเพาะทั้งหมดจะแสดง.gitทุกครั้งที่ระบุสาขา
merv

4
ส่วนใหญ่อยู่ใน OP แล้ว (ใช้pip install) คำถามคือถามว่าจะทำอย่างไรโดยใช้conda โดยตรงซึ่งคำตอบด้านบนให้
Amelio Vazquez-Reina

29

condaไม่สนับสนุนสิ่งนี้โดยตรงเนื่องจากติดตั้งจากไบนารีในขณะที่การติดตั้ง git จะมาจากแหล่งที่มา conda buildไม่รองรับสูตรอาหารที่สร้างจากคอมไพล์ ในทางกลับกันหากสิ่งที่คุณต้องการทำคืออัปเดตล่าสุดและยิ่งใหญ่ที่สุดของแพ็คเกจการใช้ pip ภายใน Anaconda ก็ใช้ได้ดีหรือใช้สลับsetup.py developกับ git clone


จะเกิดอะไรขึ้นถ้าแพ็คเกจของคุณมีไบนารีรีลีสที่เกี่ยวข้อง
Marcel Ramos

4

ฉันพบการอ้างอิงถึงสิ่งนี้ในปัญหาเงื่อนไข ต่อไปนี้ควรใช้งานได้แล้ว

name: sample_env
channels:
dependencies:
   - requests
   - bokeh>=0.10.0
   - pip:
     - git+https://github.com/pythonforfacebook/facebook-sdk.git

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