उबंटू में एक आभासी अजगर पर्यावरण को कैसे स्थापित और उपयोग किया जाए?


73

पाइथन वर्चुअल वातावरण का उपयोग निर्भरता और संस्करण के टकराव से बचने के लिए अलग-थलग अजगर वातावरण बनाने के लिए किया जाता है, और अप्रत्यक्ष रूप से अनुमति के मुद्दों पर भी ध्यान दिया जाता है। लेकिन उबंटू में इसे स्थापित करने और इसका उपयोग करने का सबसे आसान तरीका क्या है?

जवाबों:


99

के साथ virtualenvwrapper(उपयोगकर्ता की कार्यक्षमता के लिए अनुकूल रैपर virtualenv)

Virtualenv स्थापित करें

के virtualenvसाथ स्थापित करें

sudo apt-get install virtualenv

(Ubuntu 14.04 के लिए (भरोसेमंद) स्थापित python-virtualenv)

Virtualenvwrapper स्थापित करें

कारण हम virtualenvwrapper भी स्थापित कर रहे हैं , क्योंकि यह आपके वर्चुअल वातावरण को प्रबंधित करने के लिए अच्छा और सरल आदेश प्रदान करता है। स्थापित करने के दो तरीके हैं virtualenvwrapper:

Ubuntu पैकेज के रूप में (Ubuntu 16.04 से)

Daud

sudo apt install virtualenvwrapper

तो भागो

echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc

पाइप का उपयोग करना

  1. पाइप स्थापित करें और / या अपडेट करें

    पायथन 2 के साथ पाइप स्थापित करें

    sudo apt-get install python-pip

    या अजगर 3 के लिए

    sudo apt-get install python3-pip

    (यदि आप पायथन 3 का उपयोग करते हैं, तो आपको इस गाइड के बाकी हिस्सों के pip3बजाय उपयोग करने की आवश्यकता हो सकती है pip)।

    वैकल्पिक (लेकिन अनुशंसित): पाइप के लिए बैश स्वतः पूर्ण करें

    Daud

    pip completion --bash >> ~/.bashrc

    और source ~/.bashrcसक्षम करने के लिए चलाएँ ।

  2. Virtualenvwrapper स्थापित करें

    क्योंकि हमsudo pipvirtualenvwrapper स्थानीय रूप से (डिफ़ॉल्ट रूप से ~/.local) के साथ स्थापित करने से बचना चाहते हैं :

    pip install --user virtualenvwrapper

    तथा

    echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
  3. स्रोत virtualenvwrapper में .bashrc

    echo "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc

सेटअप virtualenv और virtualenvwrapper:

पहले हम उस WORKON_HOMEचर को निर्यात करते हैं जिसमें वह निर्देशिका होती है जिसमें हमारे आभासी वातावरण संग्रहीत किए जाते हैं। आइए इसे बनाते हैं~/.virtualenvs

export WORKON_HOME=~/.virtualenvs

अब इस निर्देशिका को भी बनाएँ

mkdir $WORKON_HOME

और इस निर्यात को हमारी ~/.bashrcफ़ाइल में डालें ताकि यह चर स्वचालित रूप से परिभाषित हो जाए

echo "export WORKON_HOME=$WORKON_HOME" >> ~/.bashrc

हम निम्नलिखित की तरह कुछ अतिरिक्त ट्रिक भी जोड़ सकते हैं , जो यह सुनिश्चित करता है कि यदि pipकोई अतिरिक्त वर्चुअल वातावरण बनाता है, तो इसे हमारी WORKON_HOMEनिर्देशिका में भी रखा जाता है :

echo "export PIP_VIRTUALENV_BASE=$WORKON_HOME" >> ~/.bashrc 

स्रोत ~ / .bashrc परिवर्तनों को लोड करने के लिए

source ~/.bashrc

अगर यह काम करता है तो परीक्षण करें

अब हम अपना पहला आभासी वातावरण बनाते हैं। -pतर्क वैकल्पिक है, इसका इस्तेमाल करने के अजगर संस्करण स्थापित करने के लिए प्रयोग किया जाता है; यह python3उदाहरण के लिए भी हो सकता है।

mkvirtualenv -p python2.7 test

आप देखेंगे कि पर्यावरण की स्थापना की जाएगी, और आपके संकेत में अब आपके सक्रिय वातावरण का नाम कोष्ठक में शामिल है। अगर आप अब भी दौड़ते हैं

python -c "import sys; print sys.path"

आपको बहुत कुछ देखना चाहिए /home/user/.virtualenv/...क्योंकि यह अब आपके सिस्टम साइट-पैकेज का उपयोग नहीं करता है।

आप चलाकर अपने पर्यावरण को निष्क्रिय कर सकते हैं

deactivate

और यदि आप उस पर फिर से काम करना चाहते हैं, तो बस टाइप करें

workon test

अंत में, यदि आप अपना वातावरण हटाना चाहते हैं, तो टाइप करें

rmvirtualenv test

का आनंद लें!


इस ब्लॉगपोस्ट के लेखक को धन्यवाद ।


2
python-pipऔर python-virtualenvउबंटू रिप्सिटरी के माध्यम से इंस्टॉल करने योग्य हैं, मैनुअल इंस्टॉलेशन की कोई आवश्यकता नहीं है।
तैमू

2
हालाँकि, उबंटू में, हम कई कारणों से, उबंटू पैकेज की सलाह देते हैं। पाइप या वर्चुनेल के पुराने संस्करणों में कुछ भी गलत नहीं है, वे पूरी तरह से सक्षम हैं।
tumbleweed

1
@GerhardBurger: यदि आप एक python3 virtualenv बनाते हैं, तो उसे एक पाइप मिलेगा जो python3 में काम करता है। यदि आप virtualenv बनाने के लिए Ubuntu के virtualenv का उपयोग करते हैं, तो आपके द्वारा किया गया सब कुछ virtualenv के भीतर समाहित हो जाएगा। यदि आप sudo easy_installing सामान शुरू करते हैं, तो यह सभी गड़बड़ / usr / स्थानीय को छोड़ देगा, जो कि बिना अधिक लाभ के साफ करने के लिए गैर-तुच्छ है।
tumbleweed

ऐसा लगता है कि उपनाम की अब आवश्यकता नहीं है: --no-site-packagesडिफ़ॉल्ट और --distributeपदावनत किया जाता है
int_ua

मामले में mkvirtualenv testकाम नहीं करता है, यह भी देखें: stackoverflow.com/questions/15608236/…
निकोस एलेक्जेंड्रिस

8

वर्चुअल वातावरण प्रति-परियोजना के आधार पर निर्भरता को प्रबंधित और अलग करने के लिए एक तरीका प्रदान करता है। इसके अलावा, वे पूरी sudo pip installस्थिति से भी बचते हैं , जो कि एक सुरक्षा जोखिम है जैसा कि मैंने https://askubuntu.com/a/802594/15003 में बताया है । आधिकारिक पायथन प्रलेखन भी आभासी वातावरण के उपयोग को प्रोत्साहित करता है

Python 2 और Python 3 दोनों के लिए आभासी वातावरण बनाने और उपयोग करने का सबसे आसान तरीका है, का virtualenvउपयोग करके aptया स्थापित करना apt-get। प्रत्येक पायथन प्रोजेक्ट के लिए, एक virtualenv बनाएँ और फिर इसे सक्रिय करें। ध्यान दें कि virtualenv एक विशेष पायथन संस्करण के लिए विशिष्ट है। सक्रियण के बाद, pipपायथन पैकेजों को सामान्य रूप से स्थापित करने के लिए उपयोग करें चाहे आप पायथन 2 या 3 का उपयोग कर रहे हों; pip3पायथन 3 के लिए उपयोग करने की कोई आवश्यकता नहीं sudoहै। केवल स्थापित करने के लिए उपयोग किया जाता है virtualenvऔर इसके साथ उपयोग नहीं किया जाता है pip, इसलिए उपरोक्त सुरक्षा जोखिम से बचा जाता है। ऐसा करने के लिए आदेश हैं:

sudo apt update
sudo apt install virtualenv
cd ~/desired_directory  # cd to desired_directory
virtualenv venv  # create virtualenv named venv for default system Python, which is Python 2 for Ubuntu
source venv/bin/activate  # activate virtualenv
pip install -U pip  # upgrade pip in case it is outdated
pip install desired_package  # install desired_package

यदि आप पायथन 3 के लिए एक virtualenv बनाना चाहते हैं, तो इसके virtualenv venvसाथ बदलें :

virtualenv venv -p python3

Https://virtualenv.pypa.io/en/stable/virtualenv पर विभिन्न घंटियाँ और सीटी के बारे में और पढ़ें ।


1
sourceमुझे बहुत सारे आदेश बचाता है
vnpnlz

OSError: [Errno 40] प्रतीकात्मक लिंक के कई स्तर: '/ var / www / html / python / check / venv / bin / python'
सरवनन नंदन

@SaravananNandhan कृपया इसके बजाय आवश्यक विवरण के साथ एक नया प्रश्न पूछें।
edwinksl


3

पायथन 3.3 (और उबंटू 15.10) से उपलब्ध वेनव मॉड्यूल के साथ

आभासी वातावरण (वेनव्स) इतने लोकप्रिय हैं कि कार्यक्षमता अब अजगर में ही शामिल है (3.3 बाद से)। उबंटू पर इसका उपयोग करने के लिए आपको स्थापित करने की आवश्यकता है python3-venv(क्योंकि ensurepipमॉड्यूल उपलब्ध नहीं है):

sudo apt-get install python3-venv

उसके बाद आप उपयोग कर सकते हैं

pyvenv myvirtualenv

नामक आभासी वातावरण बनाने के लिए myvirtualenv। तब आप उपयोग कर सकते हैं

source myvirtualenv/bin/activate

आभासी वातावरण को सक्रिय करने के लिए। बस प्रकार निष्क्रिय करने के लिए

deactivate

संपादित करें:pyvenv स्क्रिप्ट के पक्ष में पदावनत किया गया है python3 -m venv। यह वही है पायथन दुभाषिया को लेकर उलझन से बचाता है pyvenvसे जुड़ा है और इस तरह क्या अजगर दुभाषिया आभासी वातावरण द्वारा उपयोग किया जाएगा। ( स्रोत )

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