यदि आपके पास केवल कुछ प्रोजेक्ट्स ही हैं, तो कुछ भी नहीं, आपको हर एक के लिए एक नया वर्चस्व बनाने से रोकता है, और आपके पैकेजों को सही तरीके से रखता है:
/foobar
/bin
{activate, activate.py, easy_install, python}
/include
{python2.6/...}
/lib
{python2.6/...}
/mypackage1
__init__.py
/mypackage2
__init__.py
इस दृष्टिकोण का लाभ यह है कि आप हमेशा उस सक्रिय स्क्रिप्ट को ढूंढना सुनिश्चित कर सकते हैं जो अंदर की परियोजना से संबंधित है।
$ cd /foobar
$ source bin/activate
$ python
>>> import mypackage1
>>>
यदि आप थोड़ा और व्यवस्थित होने का निर्णय लेते हैं, तो आपको अपने सभी वर्चुअनवल्नों को एक फ़ोल्डर में रखने पर विचार करना चाहिए, और उनमें से प्रत्येक का नाम उस प्रोजेक्ट के बाद दें, जिस पर आप काम कर रहे हैं।
/virtualenvs
/foobar
/bin
{activate, activate.py, easy_install, python}
/include
{python2.6/...}
/lib
{python2.6/...}
/foobar
/mypackage1
__init__.py
/mypackage2
__init__.py
इस तरह से आप हमेशा नए वर्चुअन के साथ शुरू कर सकते हैं जब चीजें गलत हो जाती हैं, और आपकी प्रोजेक्ट फाइलें सुरक्षित रहती हैं।
एक और लाभ यह है कि आपकी कई परियोजनाएं एक ही वर्चुअनव का उपयोग कर सकती हैं, इसलिए यदि आपको बहुत अधिक निर्भरता है, तो आपको एक ही इंस्टॉलेशन करने की आवश्यकता नहीं है।
$ cd /foobar
$ source ../virtualenvs/foobar/bin/activate
$ python
>>> import mypackage2
>>>
नियमित रूप से virtualenvs को सेट और फाड़ने वाले उपयोगकर्ताओं के लिए यह virtualenvwrapper को देखने के लिए समझ में आता है।
http://pypi.python.org/pypi/virtualenvwrapper
Virtualenvwrapper के साथ आप कर सकते हैं
* create and delete virtual environments
* organize virtual environments in a central place
* easily switch between environments
अब आपको इस बात की चिंता नहीं है कि प्रोजेक्ट "फू" और "बार" पर काम करते समय आपके वर्चुअल्स कहां हैं:
/foo
/mypackage1
__init__.py
/bar
/mypackage2
__init__.py
इस तरह आप प्रोजेक्ट "फू" पर काम करना शुरू करते हैं:
$ cd foo
$ workon
bar
foo
$ workon foo
(foo)$ python
>>> import mypackage1
>>>
फिर प्रोजेक्ट "बार" पर स्विच करना इस तरह सरल है:
$ cd ../bar
$ workon bar
(bar)$ python
>>> import mypackage2
>>>
बहुत साफ है, है ना?