क्या मौजूदा वर्चुअन को इनायत से अपग्रेड किया जा सकता है?


93

मेरे पास पायथन 2.5 के लिए एक वर्चुअन बनाया गया है और इसे पायथन 2.6 में "अपग्रेड" करना चाहते हैं।

यहाँ बताया गया है कि यह मूल रूप से कैसे स्थापित किया गया था:

virtualenv --no-site-packages -p python2.5 myenv

अब मैं एक ही निर्देशिका में virtualenv को अपग्रेड करने के लिए चलाता हूं:

virtualenv --no-site-packages -p python2.6 myenv
...
Not overwriting existing python script myenv/bin/python (you must use myenv/bin/python2.6)
...
Overwriting myenv/bin/activate with new content

डिफ़ॉल्ट अजगर अभी भी 2.5 है, भले ही मैं 2.6 निर्दिष्ट कर सकता हूं। क्या 2.5 को पूरी तरह से हटाने का कोई तरीका है और इसके बजाय 'बिन / अजगर' बिंदु 2.6 है?

जवाबों:


62

आप मौजूदा निर्देशिका को "पुन: चलाने के लिए" पायथन 2.6 वर्चुअनव का उपयोग कर सकते हैं। हालांकि आपको उन सभी मॉड्यूल को फिर से स्थापित करना होगा, जिन्हें आपने इंस्टॉल किया था। मेरे पास अक्सर मॉड्यूल विकसित करने के लिए एक आभासी निर्देशिका होती है, और पायथन के कई संस्करणों के साथ उसी निर्देशिका को virtualenv करता है, और यह ठीक काम करता है। :)


1
धन्यवाद! मैंने आपका तरीका आज़माया और देखा कि 'सक्रिय' स्क्रिप्ट अपडेट हो गई है, लेकिन पुराना संस्करण बना हुआ है (कृपया संशोधित प्रश्न देखें)। क्या आप एक उदाहरण प्रदान करने में सक्षम हैं?
मैट नॉरिस

13
आप बस 2.6 / python निष्पादन योग्य को virtualenv में अजगर 2.6 के साथ फिर से चलाने से पहले हटा सकते हैं।
कार्ल मेयर

9
ठीक है, आप इसे काम कर सकते हैं - लेकिन क्यों? इसका बड़ा आकर्षण virtualenvयह है कि यह आसानी से और सस्ते में प्रजनन योग्य वातावरण बनाता है। एक के साथ क्यों टकराएं और कुछ निश्चित न करें कि आपने सब कुछ ठीक कर लिया है या आप इसे फिर से पुन: पेश कर सकते हैं या आप अपने उत्पादन के माहौल को बिगाड़ रहे हैं जब आप बस एक नया स्वच्छ बना सकते हैं?
नेड डिली

9
@ नीड: वर्चुअनव प्रजनन योग्य वातावरण नहीं बनाता है, यह अलग-थलग वातावरण बनाता है। उन्हें पुन: पेश करने के लिए आपको भी सब कुछ उसी तरह से स्थापित करने की आवश्यकता है, वर्चुअन उसके लिए पर्याप्त नहीं है। zc.buildout वहाँ बेहतर है।
लेनार्ट रेगेब्रो

1
@ नीड: पॉइंट लिया गया; यह एक विकास वातावरण है जिसमें मैं काम कर रहा था। मैं इसे 2.5 में रखना चाहता था जब तक कि मुझे 2.6 करने की आवश्यकता न हो। इसकी आवश्यकता थी, इसलिए मैं उत्सुक था यदि आप अपने कोड पर प्रभावों को देखने के लिए एक अलग वातावरण को अपग्रेड कर सकते थे, नए एनवी के लिए निर्देशिकाओं को फिर से बनाने और कॉपी करने के लिए बिना।
मैट नॉरिस

19

पायथन में 3.3+ वेनव - अपग्रेड ध्वज का समर्थन करता है

  --upgrade             Upgrade the environment directory to use this version
                        of Python, assuming Python has been upgraded in-place.

उपयोग:

python -m venv --upgrade YOUR_VENV_DIRECTORY

मैंने बिना किसी मुद्दे के कई परियोजनाओं पर सिर्फ पायथॉन 3.7.x से 3.8 तक अपने वेनव को अपग्रेड किया।


1
"यह सोचते हैं अजगर यथा-स्थान उन्नयन किया गया है" ... इस दुर्भाग्य से इसका मतलब यह है कि अगर अपने सिस्टम लगता है python33.6 अंक, मैं नहीं मिल बना सकते हैं python3बात करने के लिए मेरी venv में 3.7 करने के लिए
जोएल

4

आपको एक नया virtualenvउपयोग करना चाहिए python2.6और फिर, नए एनवी को सक्रिय करने के बाद, किसी भी साइट पैकेज के नए संस्करणों को स्थापित करने के लिए इसके python2.6और इसके उपयोग easy_installकी आवश्यकता होगी। खबरदार कि virtualenvपर्यावरण के भीतर विभिन्न फ़ाइलों में पथ नाम को हार्डवेयर्ड किया गया है, इसलिए, जब आप इस पर स्विच करने के लिए तैयार होते हैं, तो नए virualenvपथ को संदर्भित करने के लिए अपनी स्टार्टअप स्क्रिप्ट एट अल बदल दें या इसे कॉपी करने के बारे में बहुत सावधान रहें। पुरानी निर्देशिका और उसके अंदर पथ नामों को संशोधित करना।


3

CentOS पर दूसरा पायथन स्थापित करें

  1. अजगर डाउनलोड करें
  2. स्थानीय स्थापित करने के लिए स्थापित करें

    configure --prefix=/opt/virtualenv/python 
    make && make install
  3. नए अजगर का उपयोग करके वर्चुअल एनवी बनाएं

    virtualenv /opt/virtualenv --python=/opt/python276/bin/python

    ध्यान दें: यदि आवश्यक हो तो यह एक अलग उपयोगकर्ता के साथ किया जा सकता है

    chown pyuser -R /opt/virtualenv
    su - pyuser
    source /opt/virtualenv/bin/activate
    python -v
  4. वर्चुअल एनवी बनाएं:

    virtualenv /opt/virtualenv
    su - infograficos
    source bin/activate
  5. अजगर 2.7 (virtualenv के अंदर) के साथ पाइप स्थापित करें

    easy_install pip 

0

यदि आप OS X का उपयोग कर रहे हैं, तो इसे आज़माएं यदि आप तीसरे पक्ष के पुस्तकालयों को काम में रखते हुए पाइथन को मामूली वृद्धि वाले संस्करण (जैसे 2.7.6 से 2.7.8) में अपग्रेड करना चाहते हैं।

यह Django स्थापित के साथ 5 विभिन्न आभासी वातावरणों पर मेरे लिए काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.