गिट रेपो शाखा से पाइप स्थापित


686

pipरेपो की विशिष्ट शाखा को स्थापित करने की कोशिश कर रहा है । Google मुझे बताता है

पाइप स्थापित 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
क्या शाखा को निर्दिष्ट करना या उसके द्वारा प्रतिबद्ध होना अनिवार्य है @?
यूजीन

9
@ यूजीन, नहीं, @और उसके बाद के हिस्से वैकल्पिक है।
falsetru

3
अरे, अब अशुभ नहीं है tree, यह एक त्रुटि है।
सलाहदीन

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अपनी आवश्यकताओं में कुछ इस तरह से डाल सकते हैं pip install -r requirements.txt। यह मास्टर शाखा से टैग v3.1.4 स्थापित करेगा।
व्लाद

311

पाइप के साथ git + को क्लोन करने के लिए रिपॉजिटरी का उपयोग करना बेहद धीमा हो सकता है ( उदाहरण के लिए https://github.com/django/django@stable/1.6.x के साथ परीक्षण करें , इसमें कुछ मिनट लगेंगे)। सबसे तेज़ चीज़ जो मुझे मिली है, जो GitHub और BitBucket के साथ काम करती है, वह है:

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

जो django मास्टर के लिए बन जाता है:

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

यहां, मास्टर शाखा को आम तौर पर डिफ़ॉल्ट नाम दिया गया है। यह आपकी आवश्यकताओं को पूरा करेगा। बहुत तेजी से स्थापित करना।

कुछ अन्य उत्तर आपके द्वारा स्थापित किए जाने वाले पैकेज को रखने के दौरान आवश्यक भिन्नताओं का उल्लेख करते हैं requirements.txt। ध्यान दें कि यह संग्रह वाक्य रचना के साथ, प्रमुख -eऔर अनुगामी #egg=blah-blahकर रहे हैं नहीं की आवश्यकता है, और आप बस, यूआरएल पेस्ट कर सकते हैं तो तरह अपने requirements.txt दिखता है:

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

29
नोट: Django 1.9 पर से, Django जहाजों के पास एक फ़ाइल है जिसमें एक यूनिकोड फ़ाइल नाम है । उस पर पाइप चोक द्वारा उपयोग किए गए ज़िप एक्सट्रैक्टर। टार एक्सट्रैक्टर के काम करने के .zipसाथ एक आसान समाधान है .tar.gz
स्पेक्ट्रास

4
मुझे आश्चर्य है कि अगर --depth 0यह अधिक कुशल बनाने के लिए क्लोनिंग करते समय पाइप पास हो सकता है (पाइप के लिए स्नैपशॉट स्थापित करने के लिए पूरे गिट इतिहास की आवश्यकता नहीं है)। git-scm.com/docs/git-clone
cs01

6
यह भी प्रतिबद्ध हैश के लिए काम करता है! pip install https://github.com/django/django/archive/ebaa08b.zip
फूश

4
गति अंतर को इंगित करने के लिए धन्यवाद। मैंने उनका परीक्षण नहीं किया और उनकी तुलना की, लेकिन मेरा मानना ​​है कि गति अंतर मौजूद है, क्योंकि एक शाखा से स्थापित करने के बाद भी पूरे रेपो इतिहास को डाउनलोड करने में परिणाम होगा, जबकि .zip(या .tar.gz) से इंस्टॉल करने के परिणामस्वरूप रेपो का केवल एक स्नैपशॉट डाउनलोड किया जाएगा।
रायलू

क्या इस सिंटैक्स का उपयोग करके एक्स्ट्रा स्थापित करना संभव है? उदाहरण के लिए, मैं unreleased संस्करण के साथ काम करने के लिए github.com/apache/incubator-airflow @ Master (सामान्य PyPI पैकेज अपाचे-एयरफ़्लो) स्थापित करने की कोशिश कर रहा हूँ । मैं pip install apache-airflow[crypto, slack]संग्रह के संस्करण के साथ इन एक्स्ट्रा को स्थापित करने के लिए कॉल को परिवर्तित करना चाहता हूं । मैंने कोशिश की pip install https://github.com/apache/incubator-airflow/archive/master.zip[crypto, slack]लेकिन इससे URL और इंस्टालेशन टूट गया।
टेलर एड्मिस्टन

67

Ssh क्रेडेंशियल्स का उपयोग करके निजी रेपो से स्थापित करने के निर्देश :

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

51

बस एक अतिरिक्त जोड़ने के लिए, यदि आप इसे अपनी पाइप फ़ाइल में स्थापित करना चाहते हैं तो इसे इस तरह जोड़ा जा सकता है:

-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
ईयाल लेविन

4
टिप्पणी के लिए धन्यवाद, बहुत दिलचस्प। मुझे लगता है कि लोग -eपहले से मौजूद पैकेज के साथ किसी भी संभावित संघर्ष से बचने के लिए झंडे का इस्तेमाल करते हैं । मुझे लगता है कि पसंद की बात है
हस्सेक

4
और यदि आप "एक्स्ट्रा" चाहते हैं, तो उसे उस खंड में जोड़ दें, जैसे:-e git+https://github.com/tangentlabs/django-oscar-paypal.git@issue/34/oscar-0.6#egg=django-oscar-paypal[PDF]
एंकॉस्टिस

ध्यान दें कि -eवास्तव में इसकी आवश्यकता नहीं है।
टेलर एड्मिस्टन

किसी कारण के लिए, यह मेरे बिना काम नहीं करता है-e
कर्ट बॉरबकी

4

आपने अंडे की फ़ाइलों को स्थापित करने की प्रक्रिया का उपयोग किया। इस प्रक्रिया से अधिक स्थापित करने का समर्थन करता है git, git+http, git+https, git+ssh, git+gitऔर git+file। इनमें से कुछ का उल्लेख है।

यह अच्छा है कि आप शाखाओं, टैग, या हैश का उपयोग कर सकते हैं स्थापित करने के लिए।

@Steve_K ने कहा कि यह "git +" के साथ स्थापित करने के लिए धीमा हो सकता है और ज़िप फ़ाइल के माध्यम से प्रस्तावित किया जा सकता है:

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

वैकल्पिक रूप से, मेरा सुझाव है कि .whlयदि यह मौजूद है तो आप फ़ाइल का उपयोग करके इंस्टॉल कर सकते हैं ।

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

यह बहुत नया प्रारूप है, अंडे की फ़ाइलों की तुलना में नया है। इसके लिए व्हील और सेटपूल>> 0.8 पैकेज की आवश्यकता होती है। आप यहां और अधिक पा सकते हैं ।


1
प्रश्न गिथब के लिए निर्दिष्ट नहीं है। एक आर्काइव / ब्रांच.जिप की धारणा केवल जीथब के लिए विशिष्ट है।
जॉर्ज लीताओ

0

यह आकर्षण की तरह काम करता है:

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

कहाँ पे :

विकसित: शाखा

fabric8-analytics-worker.git: रेपो

deepak1725: उपयोगकर्ता

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.