अपने आवेदन में मैं उपयोग करना चाहूंगा:
packageA
, जिसकी ज़रुरत हैpackageX==1.3
packageB
, जिसकी ज़रुरत हैpackageX==1.4
packageX==1.5
मैं packageX
इस स्थिति को संभालने के लिए पाइप के साथ कई संस्करण कैसे स्थापित कर सकता हूं ?
अपने आवेदन में मैं उपयोग करना चाहूंगा:
packageA
, जिसकी ज़रुरत है packageX==1.3
packageB
, जिसकी ज़रुरत है packageX==1.4
packageX==1.5
मैं packageX
इस स्थिति को संभालने के लिए पाइप के साथ कई संस्करण कैसे स्थापित कर सकता हूं ?
packageX>=1.3,<2
और packageX>=1.4,<2
(अपस्ट्रीम पैकेजएक्स को सिमेंटिक वर्जनिंग का अनुसरण करते हुए मान लिया गया है ), तब आपको डाउनस्ट्रीम ऐप डेवलपर के रूप में पिन करने और उपयोग करने में कोई समस्या नहीं packageX==1.5
होगी और हर कोई खुश होगा। यहाँ अधिक जानकारी
जवाबों:
इससे पाइप आपकी मदद नहीं करेगा।
आप इसे एक विशिष्ट संस्करण स्थापित करने के लिए कह सकते हैं, लेकिन यह दूसरे को ओवरराइड करेगा। दूसरी ओर, दो वर्चुअन का उपयोग करके आप दोनों संस्करणों को एक ही मशीन पर स्थापित कर सकते हैं, लेकिन एक ही समय में उनका उपयोग नहीं करेंगे।
आप सबसे अच्छा शर्त दोनों संस्करण को मैन्युअल रूप से स्थापित करना है, उन्हें अपने पायथन पथ में एक अलग नाम से डालकर।
लेकिन अगर आपके दो परिवादों से उन्हें एक ही नाम (और उन्हें चाहिए) की उम्मीद है, तो आपको उन्हें संशोधित करना होगा, ताकि वे उस संस्करण को चुनें जो उन्हें कुछ आयात उर्फ के साथ चाहिए जैसे:
import dependencyname_version as dependencyname
वर्तमान में ऐसा करने का कोई साफ तरीका नहीं है। सबसे अच्छी उम्मीद है कि आप इस हैक के लिए काम कर सकते हैं।
मैं इसके बजाय दो में से एक परिवाद को खोदता हूं और इसे एक समकक्ष के साथ प्रतिस्थापित करता हूं, या इसे निर्भरता के नए संस्करण को स्वीकार करने और समुदाय को पैच वापस देने के लिए पैच करता हूं।
ईआर के लिए स्रोत डाउनलोड करें। पैकेज। प्रत्येक को अपने अलग फ़ोल्डर में स्थापित करें। उदाहरण के लिए। मेरे पास संस्करण 1.10 पैकेज था, लेकिन कुछ काम के लिए देव संस्करण पर स्विच करना चाहता था। मैंने देव मॉड्यूल के लिए स्रोत डाउनलोड किया:
git clone https://github.com/networkx/networkx.git
cd netwokrx
मैंने इस संस्करण के लिए एक फ़ोल्डर बनाया:
mkdir /home/username/opt/python
फिर, मैंने PYTHONPATH env var को निम्न पर सेट किया export PYTHONPATH=/home/username/opt/python/lib/python2.7/site-packages/
:। अगला, मैंने इसका उपयोग करके स्थापित किया:python setup.py install --prefix=/home/username/opt/python
अब, चूंकि मेरा PYTHONPATH अब इस दूसरी साइट-संकुल फ़ोल्डर की ओर इशारा कर रहा है, जब मैं कमांड लाइन पर पायथन को चलाता हूं, और नए मॉड्यूल को आयात करता हूं, तो यह काम करता है। स्विच को वापस स्विच करने के लिए, नया फ़ोल्डर PYTHONPATH से निकालें।
>>> import networkx as nx
>>> nx.__version__
'2.0.dev_20151209221101'
networkx
संस्करण मतभेदों से लड़ रहा हूँ !
sys.path