कॉन्फ़िगर करना ताकि पाइप इंस्टॉल जीथब से काम कर सके


226

हम अपने उत्पादन सर्वरों में निजी पैकेजों को स्थापित करने के लिए गिटब के साथ पाइप का उपयोग करना चाहते हैं। यह सवाल चिंतित करता है कि सफल होने के लिए गिथब रेपो में क्या होना चाहिए।

निम्नलिखित कमांड लाइन मान लें (जो कि केवल ठीक प्रमाणित करता है और स्थापित करने की कोशिश करता है):

pip install git+ssh://git@github.com/BlahCo/search/tree/prod_release_branch/ProductName

क्या ProductName में निवास करने की आवश्यकता है? यह sdist विकल्प के साथ setup.py, या वास्तविक tar.gz फ़ाइल है, या कुछ और चलाने के बाद सामान्य रूप से टार फ़ाइल में क्या होगा की सामग्री है?

मैं यहाँ पूछ रहा हूँ क्योंकि मैंने कई बदलावों की कोशिश की है और यह काम नहीं कर सकता। किसी भी मदद की सराहना की।

जवाबों:


290

आपको इसमें एक setup.pyफ़ाइल के साथ पूरे अजगर पैकेज की आवश्यकता है।

एक पैकेज fooहोगा:

foo # the installable package
├── foo
   ├── __init__.py
   └── bar.py
└── setup.py

और जीथब से स्थापित करें जैसे:

$ pip install git+https://github.com/myuser/foo.git@v123
or
$ pip install git+https://github.com/myuser/foo.git@newbranch

Https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support पर अधिक जानकारी


3
उपरोक्त काम करता है, बहुत-बहुत धन्यवाद। लेकिन क्या होगा अगर मेरे पास रेपो के भीतर एक उप-संस्करण में रिलीज़ हो, इसलिए foo.it के बजाय मैं foo / रिलीज़ / ProductVer की तलाश कर रहा हूं। क्या यह संभव है और यदि ऐसा है तो कैसे? मदद के लिए बहुत बहुत धन्यवाद!
ccgillett

4
नहीं, यह संभव नहीं है। पाइप केवल रूट रिपॉजिटरी डायरेक्टरी से इंस्टॉल होता है, कम से कम गिट के लिए। पता नहीं कैसे तोड़फोड़ बर्ताव करता है ...
ह्यूगो तवारेस

3
यदि आप इसे ssh और Private repos पर करना चाहते हैं, तो यह एक पोस्ट है कि कैसे करें
जोनाथन

ऐसा क्यों है कि आपने -eविकल्प (संपादन योग्य मोड) को पाइप करने के लिए पारित नहीं किया है ?
एमिलियो वाज़केज़-रीना

14
यहाँ नई url योजना है: pip install git+https://github.com/pypa/pip.git स्रोत: पाइप
गिथब

111

मेरे पास समान मुद्दा था जब मुझे गिटब रेपो से स्थापित करना था, लेकिन गिट स्थापित करना नहीं चाहता था, आदि।

इसे करने का सरल तरीका पैकेज के ज़िप संग्रह का उपयोग करना है। /zipball/masterरेपो URL में जोड़ें :

    $ pip install https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
Downloading/unpacking https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
  Downloading master
  Running setup.py egg_info for package from https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
Installing collected packages: django-debug-toolbar-mongo
  Running setup.py install for django-debug-toolbar-mongo
Successfully installed django-debug-toolbar-mongo
Cleaning up...

इस तरह से आप github स्रोत रिपॉजिटरी के साथ पाइप काम करेंगे।


2
यह एकमात्र उत्तर है जो विंडोज के तहत भी काम करता है
दिव्यांग

यह निजी रिपॉजिटरी के साथ कैसे किया जा सकता है? (जैसा कि सवाल पूछता है)
रोड्रिगो ई। प्रिंसिपल

29

यदि आप requirements.txtफ़ाइल का उपयोग करना चाहते हैं , तो आपको आवश्यकता होगी gitऔर नीचे की प्रविष्टि की तरह कुछ गुमनाम रूप से आपके लिए मास्टर शाखा लाएगा requirements.txt

नियमित रूप से स्थापित करने के लिए:

git+git://github.com/celery/django-celery.git

" संपादन योग्य " स्थापित करने के लिए:

-e git://github.com/celery/django-celery.git#egg=django-celery

संपादन योग्य मोड ./srcवर्तमान निर्देशिका में परियोजना के स्रोत कोड को डाउनलोड करता है । यह pip freezeपैकेज के सही गितुब स्थान को आउटपुट करने की अनुमति देता है।


3
उस अंडे का नाम कहां से आता है? यह
गीगाब

@holms लुकअप नाम सेटअप में
wieczorek1990

क्या है #egg=django-celery? क्या वह प्लेसहोल्डर है?
ENCHANCE

@enchance यह पैकेज का नाम है।
wieczorek1990

13

क्लोन टारगेट रिपॉजिटरी उसी तरह जैसे आप किसी अन्य प्रोजेक्ट का क्लोनिंग करते हैं:

git clone git@github.com:myuser/foo.git

फिर इसे विकसित मोड में स्थापित करें:

cd foo
pip install -e .

आप कुछ भी नहीं बदल सकते हैं और fooपैकेज का उपयोग करने वाला हर कोड संशोधित कोड का उपयोग करेगा।

वहाँ 2 लाभ ओ.टी. इस समाधान:

  1. आप अपने घर परियोजनाओं निर्देशिका में पैकेज स्थापित कर सकते हैं।
  2. पैकेज में .gitडीआईआर शामिल है , इसलिए यह नियमित रूप से गिट रिपॉजिटरी है। आप अपने कांटे को तुरंत धकेल सकते हैं।

2
मैं गवाही दे सकता हूं कि यह समाधान जादुई है। मेरे मामले में, मैं हैक करना चाहता था pip, इसलिए मैंने pipरिपॉजिटरी पर क्लोन किया , एक वर्चुअनव्यू बनाया, इसे सक्रिय किया, और किया pip install -e .। तब pipvirtualenv में विकास मोड में था! मैं प्रभावित हूं कि यह पैकेज मैनेजर के साथ भी काम करता है।
रेडॉन रोसबोरो

यह भी खूब रही! मुझे लगता है कि जब मैंने इस पद्धति का उपयोग करके स्थापित किया था और फिर चला था pip list, तो प्रश्न में पैकेज में गिट शाखा और निरपेक्ष पथ का संदर्भ है, जहां से इसे स्थापित किया गया था। क्या यह उन लोगों के लिए कोई संदर्भ रखता है या स्रोत को हटाया जा सकता है?
MadPhysicist

0

आप इस तरह से कोलाब में कोशिश कर सकते हैं

!git clone https://github.com/UKPLab/sentence-transformers.git
!pip install -e /content/sentence-transformers
import sentence_transformers
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.