2014-04-11 6 views
10

pip संस्थापक के हाल के संस्करण संकुल कि PyPI करने के लिए अपने पैकेज फ़ाइलों को अपलोड नहीं है जब तक कि उपयोगकर्ता स्पष्ट --allow-external विकल्प (related answer) प्रदान स्थापित नहीं किया है।पाइप: किसी भी कामकाज से बचने के लिए - बाहरी-बाहरी?

मैं अपने पैकेज कि dirspec की तरह इस तरह के पुस्तकालय पर निर्भर वितरित करना चाहते हैं। वर्तमान में मैं निम्न आदेश के आधार पर अपने पैकेज स्थापित करने के लिए अपने पैकेज के उपयोगकर्ताओं को बताने के लिए है:

$ pip install --allow-external dirspec MyPackage 

यह अधिक समस्याग्रस्त जब यह पुस्तकालय पैकेजिंग की बात आती है हो जाता है।

$ pip install --allow-external dirspec TheirPackage 

कोई वैकल्पिक हल इस situtation से बचने के लिए है: अपने पैकेज एक पुस्तकालय है अगर मैं भी संकुल है कि मेरे पैकेज पर निर्भर निम्न आदेश के द्वारा अपने पैकेज स्थापित करने के लिए अपने उपयोगकर्ताओं को बताने के लिए के लेखकों को बताने के लिए है?

उत्तर

5

करना सही बात अपने टारबॉल में या एक मेगा टारबॉल उनकी परियोजनाओं और तुम्हारा युक्त आवश्यक चीजें शामिल है। फिर पीपी स्थानीय फाइलों से खुशी से स्थापित होगा।

6

आप सुरक्षा सुविधा के कामकाज के लिए पूछ रहे हैं। मेरे ज्ञान के बिना बाहरी साइट से स्थापित करना हानिकारक माना जा सकता है।

वैकल्पिक समाधान हो सकती है: या तो के बारे में आवश्यक पैकेज है कि स्विच के बिना पहुंच योग्य नहीं किया जा रहा है, या अपने स्थापना कोड से इस तरह के एक निर्देश देने के लिए कोशिश कर शिकायत पिप पर भरोसा करते हैं। हालांकि, दूसरा दृष्टिकोण असफल हो जाएगा, अगर आप वास्तव में ऐसे पैकेज पर निर्भरता घोषित करते हैं, क्योंकि पीआईपी पहले बाहरी को स्थापित करने का प्रयास करेगा, इस प्रकार आपके setup.py को कुछ भी कहने का मौका नहीं देगा। आपको अपने पैकेज को स्वतंत्र बनाना होगा और बाहरी.py से कुछ पैकेज स्थापित करने के लिए setup.py एक निर्देश से प्रिंट करना होगा। यह और भी जटिल लगता है।

मुझे लगता होगा, कि इस तरह की स्थिति (बाहरी पैकेज पर निर्भर है) काफी लोकप्रिय हो जाएगा, कि पिप काफी शिक्षाप्रद संकेत दे रही है कि कैसे ऐसी निर्भरता को हल करने के बारे में ध्यान रखना होगा।

संपादित करें: पिप (1.5.4) से पता चलता है के वर्तमान संस्करण के साथ स्थापना का परीक्षण, इस तरह के संकेत --use-बाहरी मुद्रित एक स्विच का उपयोग करने का प्रस्ताव नहीं है।

$ pip install gitlle 
Downloading/unpacking gittle 
..... 
Downloading/unpacking mimer (from gittle) 
    Could not find any downloads that satisfy the requirement mimer (from gittle) 
    Some externally hosted files were ignored (use --allow-external mimer to allow). 
Cleaning up... 
+1

--allow-बाहरी एक सुरक्षा वैकल्पिक हल-'pip' अभी भी एक सुरक्षित रूप से pypi से प्राप्त के साथ बाहरी डाउनलोड की चेकसम जाँच करेगा नहीं है। अगर, दूसरी तरफ, ओपी ने - असुविधाजनक के लिए कामकाज की मांग की, तो यह वास्तव में एक सुरक्षा मुद्दे से होगा। यह प्रश्न देखें: http://stackoverflow.com/q/21021326/42610 – liori

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