हम असमर्थित पायथन संस्करण का उपयोग करते समय पैकेज को स्थापित करने और प्रयास करने से रोकने के लिए setup.py
फ़ाइल में क्या डाल सकते हैं?पुराने पायथन संस्करणों पर पैकेज को स्थापित करने से रोकें
उदाहरण magicstack
के लिए निधि वर्गीकारक के साथ सूचीबद्ध एक परियोजना है:
Programming Language :: Python :: 3 :: Only
तो मैं उम्मीद करता है, तो pip --version
निम्नलिखित व्यवहार 2.7 अजगर से जुड़ा हुआ है:
$ pip install magicstack
Collecting magicstack
Could not find a version that satisfies the requirement magicstack (from versions:)
No matching distribution found for magicstack
लेकिन वास्तविक व्यवहार करता है पीआईपी एक रिलीज इकट्ठा करता है, इसे डाउनलोड करता है, इसे स्थापित करने का प्रयास करता है, और विफल रहता है। उदाहरण के लिए अन्य Python3-only रिलीज, curio
हैं, जो वास्तव में ठीक इंस्टॉल करते हैं - क्योंकि setup.py
ने कुछ भी नहीं किया है जो कि पाइथन 3 विशिष्ट - केवल आयात समय पर असफल होने पर ही कुछ पायथन 3 सिंटैक्स का उपयोग किया जाता है। और मुझे यकीन है कि ऐसे पैकेज हैं जो ठीक इंस्टॉल करते हैं, ठीक आयात करते हैं, और शायद रनटाइम पर ही असफल हो सकते हैं!
आपके समर्थित पायथन संस्करणों को निर्दिष्ट करने के लिए सही तरीका क्या है कि पीआईपी सम्मान करेगी? मुझे एक वर्कअराउंड मिला है, जिसमें केवल एक व्हील फ़ाइल अपलोड करना शामिल है, और .tar.gz वितरण अपलोड करने से इंकार कर रहा है, लेकिन मुझे सही फ़िक्स जानने में दिलचस्पी होगी।
संपादित करें: कैसे पिप नहीं पता है पहिया वितरण करता है, तो अजगर/ओएस/वास्तुकला मिलान नहीं है डाउनलोड करने के लिए? क्या यह सिर्फ .whl filename convention का उपयोग करता है या दृश्यों के पीछे होने वाली तुलना में कुछ और परिष्कृत है? क्या हम किसी भी तरह से स्रोत वितरण के लिए मेटाडेटा दे सकते हैं ताकि पाइप को .tar.gz अपलोड के साथ सही काम कर सकें?
मुझे नहीं पता कि यह _right_ उत्तर है ... लेकिन अगर 'जादूस्टैक' केवल python3 है क्योंकि 'setup.py' python2.x पर विफल रहता है, तो ऐसा लगता है कि यह काम करने का एक संभावित तरीका है अनुचित पायथन संस्करणों पर असफल होने के लिए अपने 'setup.py' को मजबूर करें ... – mgilson
हैकी। यदि पाइप असमर्थित पायथन दुभाषिया से जुड़ा हुआ है, तो मैं नहीं चाहता कि पैकेज एकत्र या डाउनलोड किया गया हो, अकेले ही 'setup.py' को निष्पादित करके एक इंस्टॉलेशन प्रयास करें। – wim
Google कुछ [पिछला] (http://stackoverflow.com/questions/13924931/setup-py-restrict-the-allowable-version-of-the-python-interpreter) [प्रश्न] (http: // stackoverflow) .com/प्रश्न/13385337/वितरण-distutils-निर्दिष्ट-पायथन संस्करण) उत्तर के साथ आपके 'setup.py' पाइथन संस्करण की जांच करें। – user2357112