2009-10-05 13 views
16

कहें कि आप एक ऐसी टीम पर हैं जो बहुत से आंतरिक पायथन पुस्तकालयों (अंडे) को बनाए रखती है, और जो भी कारण उन्हें पीपीआई में अपलोड करना एक विकल्प नहीं है। आप पुस्तकालयों (अंडों) को कैसे होस्ट कर सकते हैं ताकि easy_install अभी भी आपकी टीम के सदस्यों के लिए काम कर सके?आप अपने अंडे के भंडार की मेजबानी कैसे करते हैं?

मूल रूप से यह शांत अगर यह काम किया होगा ....

(someproj)[email protected]:~$ easy_install myproprietary.lib-dev 
user: uberdev 
password:... 
fetching...... 
Searching for myproprietary.lib-dev 
Reading http://dev.mycompany.corp/myproprietary.lib-dev 
Reading http://dev.mycompany.corp 
Reading http://dev.mycompany.corp/dist 
Best match: myproprietary.lib-dev 
Downloading http://dev.mycompany.corp/dist/myproprietary.lib-dev 

मैं वहाँ सर्वर स्थापित किया जा सकता किसी प्रकार का है, लेकिन मैं इस मामले पर विशेषज्ञों से कुछ मार्गदर्शन की सराहना करेंगे लगता है।

धन्यवाद

+3

आपको एक दफ़्ती मिलती है और उन्हें फ्रिज में डाल देती है! * रिम-शॉट * –

उत्तर

8

तैनात सब अपने एक निर्देशिका करने के लिए अंडे सभी devs। पहुंच सकते हैं (उदाहरण के लिए एक वेबसर्वर पर)।

कि निर्देशिका, प्रकार से अंडे को स्थापित करने के:

$ easy_install -H None -f http://server/vdir TheEggToInstall 

या।

$ easy_install -H None -f /path/to/directory TheEggToInstall 

-H None साधन किसी भी मेजबान (एक -f में नाम को छोड़कर) से अंडा डाउनलोड की अनुमति नहीं देते।

निर्देशिका http पर पहुंच योग्य हो सकती है या आपके द्वारा माउंट की जाने वाली निर्देशिका हो सकती है (एनएफएस, विंडोज शेयर इत्यादि)। शायद एफ़टीपी भी काम करता है?

आसान_install documentation इस पर जानकारी है।

+0

कूल बहुत बहुत धन्यवाद। मैं पृष्ठ से देखता हूं कि आप कॉन्फ़िगरेशन फ़ाइल में अपनी पसंदीदा यूआरएल भी सेट कर सकते हैं। और easy_install मूल http auth को संभालेगा, जो कि पूरी तरह से सवाल का जवाब देता है। –

+0

@codeape, मेरे पास मेरी निजी वेबसाइट जैसे होस्ट की गई अंडा फ़ाइलें हैं। https://test.xxx.com/versions/ जब मैं easy_install -H कोई नहीं -f https://test.xxx.com/version/ netforce_account-3.1.0-py3.5.egg, मुझे बहुत कुछ मिलता है अवांछित परिणाम जैसे test.xx होस्ट को बाधित करना और (अस्वीकृत मेजबान; http://bit.ly/1dg9ijs विवरण के लिए देखें)। , मैं क्या खो रहा हूँ? –

+0

क्या आप कंसोल आउटपुट पोस्ट कर सकते हैं? – codeape

3

तो अपनी टीम वितरित किया जाता है - और बोलने शर्तों पर - तो स्रोत का एक सरल तोड़फोड़ भंडार सर्वर कुछ अन्य प्रकार से बेहतर है।

बस परियोजनाएं बनाएं और सभी को चेकआउट ट्रंक करें। जब चीजें बदलती हैं, तो उन्हें अपडेट करने के लिए कहें।

यदि आपकी टीम सह-स्थित है - और बोलने वाले शब्दों पर - तो "आधिकारिक" पुस्तकालयों के साथ एक साझा ड्राइव भी अच्छी तरह से काम करती है। बस इसे माउंट करें और इसे अपने PYTHONPATH पर शामिल करें।

यदि आप स्थानीय प्रतियां चाहते हैं, तो अच्छी setup.py फ़ाइल के साथ उपversण (या साझा ड्राइव) में आधिकारिक स्रोत प्रदान करें। वे बस निर्देशिका में सीडी और python setup.py install चलाते हैं और बाकी सब कुछ उनके लिए होता है। यह easy_install से थोड़ा सा अंश है क्योंकि setup.py पहले ही पाइथन वितरण का हिस्सा है।

अंडे उन लोगों के लिए हैं जो बोलने वाले शब्दों पर नहीं हैं।

आपकी टीम के सदस्य आमतौर पर बोलने वाले शब्दों पर हैं और अंडों की अतिरिक्त जटिलता की आवश्यकता नहीं है। मूल setup.py पर्याप्त होना चाहिए।

+0

आप कुछ अच्छे अंक उठाते हैं। मैं सोच रहा था कि संस्करण नियंत्रण का उपयोग करके साझाकरण तंत्र काम करेगा यदि एक रेपो था, लेकिन यदि कई रिपो थे, तो प्रति अंडे कहें, फिर टीम के सदस्यों के लिए उपलब्ध आपके अंडों के विभिन्न संस्करण होने से अंडे रेपो केंद्रीय स्थान बन जाएगा। अधिक आम तौर पर मैं मैकेनिक्स को समझना चाहता था कि कितना easy_install अंडे पाता है, जो उत्तर पर आधारित है, यह अपेक्षाकृत सरल लगता है। –

1

सबसे पहले: यदि पैकेज जेनेरिक पैकेज सार्वजनिक रूप से उपलब्ध हो, तो पीपीपीआई में पैकेज अपलोड नहीं करना आम तौर पर एक बुरा विचार है, क्योंकि आपके पैकेज पर निर्भर पैकेज को easy_install करना मतलब है कि आपके अंडे सर्वर को ऊपर और चलने की आवश्यकता है , साथ ही पीपीपीआई। शामिल प्रत्येक सर्वर के लिए आपको असफलताओं का एक और बिंदु मिलता है।

लेकिन यदि यह निजी पैकेज हैं जिन्हें पीईपीआई पर भी सूचीबद्ध नहीं किया जाना चाहिए, या केवल बड़े सिस्टम के हिस्से के रूप में उपयोगी पैकेज, जैसे प्लोन, यह एक और मामला है। फिर आप अपने सर्वर पर अंडे देखने के लिए easy___install और buildout आदि चाहते हैं। ऐसा करना काफी कठोर है। आप सिर्फ अंडे निर्देशिका को वेबसर्वर पर डालते हैं और उस निर्देशिका को -f पैरामीटर के साथ easy_install पर इंगित करते हैं।

यहां इस तरह के भंडार का एक उदाहरण है: http://dist.plone.org/release/3.3.1/

+1

मैं सिद्धांत रूप से आपसे सहमत हूं। हालांकि, कुछ कंपनियां अपनी "बौद्धिक संपदा" के बारे में सभी उत्साहित हैं। इसके अलावा, मेरे लिए भी, pypi पर अपलोड करना प्रतीत होता है कि मैं इसका समर्थन करने के लिए तैयार हूं और बग/फीचर अनुरोध लेता हूं। जो हमेशा मामला नहीं हो सकता है। या कम से कम, उस समय की बात यह है कि इसे टीम के साथ साझा करने की आवश्यकता है, और जिस समय इसे दुनिया के साथ साझा करने की आवश्यकता है, वह अलग-अलग समय हो सकता है। –

2

मैं उपयोग ClueReleaseManager

ClueReleaseManager रूप PyPi सर्वर बैकएंड http://pypi.python.org द्वारा प्रदान के एक कार्यान्वयन है। प्रोजेक्ट फ़ाइलों को संग्रहीत करने के लिए यह सभी परियोजना मेटाडेटा और फाइल सिस्टम स्टोर करने के लिए डिफ़ॉल्ट रूप से SQLAlchemy ( वर्गमीटर के शीर्ष पर) का उपयोग करता है।

संबंधित मुद्दे