pip ติดตั้งจากสาขา git repo


686

กำลังพยายามpipติดตั้งสาขาเฉพาะของ repo Google บอกให้ฉันทำ

pip ติดตั้ง git + https://github.com/user/repo.git@branch

ชื่อของสาขาคือissue/34/oscar-0.6ดังนั้นฉันได้pip install https://github.com/tangentlabs/django-oscar-paypal.git@/issue/34/oscar-0.6แต่กลับ 404

ฉันจะติดตั้งสาขานี้ได้อย่างไร

คำตอบ:


932

เติมคำนำหน้า URL git+(ดูการสนับสนุน VCS ):

pip install git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6

และระบุชื่อสาขาโดยไม่ต้องนำ/หน้า


5
มันจะแก้ไขเพื่อระบุสาขาหรือกระทำโดย@?
eugene

9
@ eugene, No @และชิ้นส่วนหลังจากนั้นเป็นตัวเลือก
falsetru

3
เฮ้ตอนนี้ไม่จำเป็นต้องใส่treeนี่ทำให้เกิดข้อผิดพลาด
SalahAdDin

6
ใช้สำหรับสาขาตัวอย่างเช่น:pip install -U git+https://github.com/danreeves/wagtailgmaps@3.0.0
SalahAdDin

3
นอกจากนี้คุณยังสามารถใส่อะไรเช่นนี้git+https://github.com/adiralashiva8/robotframework-metrics@v3.1.4เข้า requirements.txt pip install -r requirements.txtของคุณแล้วติดตั้งด้วย สิ่งนี้จะติดตั้ง Tag v3.1.4 จากสาขาหลัก
Wlad

311

การใช้ pip ด้วย git + เพื่อโคลนที่เก็บอาจช้ามาก (ทดสอบด้วยhttps://github.com/django/django@stable/1.6.xตัวอย่างเช่นจะใช้เวลาสองสามนาที) สิ่งที่เร็วที่สุดที่ฉันได้พบซึ่งทำงานกับ GitHub และ BitBucket คือ:

pip install https://github.com/user/repository/archive/branch.zip

ซึ่งกลายเป็นสำหรับ django master:

pip install https://github.com/django/django/archive/master.zip

สำหรับ django เสถียร / 1.7.x:

pip install https://github.com/django/django/archive/stable/1.7.x.zip

ด้วย BitBucket มันเป็นรูปแบบที่คาดเดาได้เช่นเดียวกัน:

pip install https://bitbucket.org/izi/django-admin-tools/get/default.zip

โดยทั่วไปสาขาหลักจะตั้งชื่อตามค่าเริ่มต้น สิ่งนี้จะทำให้ข้อกำหนดของคุณ txt ติดตั้งเร็วขึ้นมาก

บางคำตอบอื่น ๆ requirements.txtพูดถึงการเปลี่ยนแปลงที่จำเป็นเมื่อมีการวางแพคเกจที่จะติดตั้งลงในของคุณ โปรดทราบว่ามีไวยากรณ์คลังนี้ชั้นนำ-eและต่อท้าย#egg=blah-blahจะไม่จำเป็นและคุณสามารถเพียงแค่วาง URL เพื่อให้รูปลักษณ์ requirements.txt ของคุณเช่น:

https://github.com/user/repository/archive/branch.zip

29
หมายเหตุ:จาก Django 1.9 บนเรือ Django กับแฟ้มที่มีเป็นชื่อไฟล์ Unicode ตัวแยก zip ใช้โดย pip chokes บนนั้น วิธีแก้ปัญหาง่ายๆคือแทนที่.zipด้วย.tar.gzเนื่องจากตัวแยก tar ทำงาน
สเปกตรัม

4
ฉันสงสัยว่า pip สามารถส่งผ่านได้--depth 0เมื่อทำการโคลนนิ่งเพื่อให้มีประสิทธิภาพมากขึ้นหรือไม่ git-scm.com/docs/git-clone
cs01

6
วิธีนี้ใช้สำหรับแฮ็ชแฮช! pip install https://github.com/django/django/archive/ebaa08b.zip
Fush

4
ขอบคุณที่ชี้ให้เห็นถึงความแตกต่างของความเร็ว ฉันไม่ได้ทดสอบและเปรียบเทียบพวกเขา แต่ฉันเชื่อว่าความแตกต่างของความเร็วนั้นมีอยู่เนื่องจากการติดตั้งจากสาขาจะยังคงส่งผลให้ดาวน์โหลดประวัติ repo ทั้งหมดในขณะที่การติดตั้งจาก.zip(หรือ.tar.gz) จะส่งผลให้ดาวน์โหลดเพียงภาพรวมของ repo
RayLuo

เป็นไปได้หรือไม่ที่จะติดตั้งบริการเสริมโดยใช้ไวยากรณ์นี้ ตัวอย่างเช่นฉันพยายามติดตั้งgithub.com/apache/incubator-airflow @ master (แพ็คเกจ PyPI ปกติคือ apache-airflow) เพื่อทำงานกับเวอร์ชันที่ยังไม่เผยแพร่ ฉันต้องการแปลงการโทรpip install apache-airflow[crypto, slack]เพื่อติดตั้งบริการเสริมเหล่านี้ด้วยรุ่นเก็บถาวร ฉันพยายามpip install https://github.com/apache/incubator-airflow/archive/master.zip[crypto, slack]แต่สิ่งนี้ทำลาย URL และการติดตั้ง
เทย์เลอร์เอ็ดมิสตัน

67

คำแนะนำในการติดตั้งจาก repo ส่วนตัวโดยใช้ข้อมูลประจำตัว ssh :

$ pip install git+ssh://git@github.com/myuser/foo.git@my_version

51

เพียงแค่เพิ่มพิเศษถ้าคุณต้องการติดตั้งในไฟล์ pip สามารถเพิ่มได้ดังนี้:

-e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal

มันจะถูกบันทึกเป็นไข่แม้ว่า


5
-eดีกว่าที่จะใช้งานได้โดยไม่ต้อง ดู: stackoverflow.com/a/34518202/451710
Eyal Levin

4
ขอบคุณสำหรับความคิดเห็นที่น่าสนใจมาก ฉันคิดว่าผู้คนมักใช้-eธงเพื่อหลีกเลี่ยงความขัดแย้งที่อาจเกิดขึ้นกับแพ็คเกจที่มีอยู่แล้ว ฉันเดาว่าเป็นเรื่องของตัวเลือก
Hassek

4
และถ้าคุณต้องการ "ความพิเศษ" ผนวกไว้ในเขา fragment เช่นว่า:-e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal[PDF]
ankostis

โปรดทราบว่า-eดูเหมือนจะไม่จำเป็นต้องใช้จริง
เทย์เลอร์ Edmiston

ด้วยเหตุผลบางอย่างมันไม่ทำงานสำหรับฉันหากไม่มี-e
Kurt Bourbaki

4

คุณใช้ขั้นตอนการติดตั้งไฟล์ไข่ ขั้นตอนนี้จะสนับสนุนการติดตั้งมากกว่าgit, git+http, git+https, git+ssh, และgit+git git+fileบางส่วนของแนวหินเหล่านี้ถูกกล่าวถึง

เป็นเรื่องดีที่คุณสามารถใช้กิ่งแท็กหรือแฮชเพื่อติดตั้งได้

@Steve_K สังเกตว่าอาจจะช้าในการติดตั้งด้วย "git +" และการติดตั้งที่เสนอผ่านไฟล์ zip:

pip install https://github.com/user/repository/archive/branch.zip

หรือฉันแนะนำให้คุณติดตั้งโดยใช้.whlไฟล์หากมีอยู่

pip install https://github.com/user/repository/archive/branch.whl

มันเป็นรูปแบบใหม่ที่ค่อนข้างใหม่กว่าไฟล์ไข่ มันต้องใช้ล้อและ setuptools> = 0.8 แพ็คเกจ ท่านสามารถหาข้อมูลเพิ่มเติมในที่นี่


1
คำถามนี้ไม่ได้ระบุให้กับ GitHub แนวคิดของไฟล์เก็บถาวร / branch.zip มีความเฉพาะกับ github เท่านั้น
Jorge Leitao

0

สิ่งนี้ได้ผลเช่นเสน่ห์:

pip3 install git+https://github.com/deepak1725/fabric8-analytics-worker.git@develop

ที่ไหน:

การพัฒนา: สาขา

fabric8-analytics-worker.git: Repo

deepak1725: ผู้ใช้

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