برای ساخت یک محیط ایزوله و جدا برای پروژه ی در دست ساخت در زبان پایتون از virtualenv استفاده میکنیم. دلیل این امر عدم تاثیر پذیری پایتون و ماژولها و کتابخانه های نصب شده از تغییرات در سیستم و انتخاب نسخه مورد نظر ما برای پایتون و پکیج های آن است. بعنوان مثال مسیر نصب در pip یک مسیر مشخص است که هر کتابخانه و ماژول جدید در این مسیر نصب میشود و به مرور زمان با نصب کتابخانههای جدیدتر ممکن است بعضی پکیج ها دچار تغییراتی شوند که در کار توسعه پروژه فعلی ما ایجاد اختلال کنند. به همین منظور استفاده از محیط ایزوله برای جداسازی پایتون و ماژولهای مورد نیاز از مسیر سیستم کاملا معقول و لازم است . با استفاده از پکیج virtualenv میتوان یک محیط ایزوله برای این منظور ساخت :
sudo apt-get update sudo apt-get install build-essential libssl-dev libffi-dev python-dev sudo apt install python3-pip sudo pip3 instal virtualenv
بعد از نصب virtualenv در مسیر پروژه یک محیط ایزوله بصورت زیر میسازیم:
$cd new-project virtualenv -p python3 env
در صورتیکه برروی سیستم خود نسخه های متفاوتی از پایتون نصب شده باشد، با استفاده از سوئیچ زیر میتوان نسخه متفاوتی از پایتون سیستم مادر را در virtualenv نصب کرد:
virtualenv -p python3 env --python="pythonx.y"
که pythonx.y پایتون نسخه x.y میباشد، مثلا پایتون نسخه ۳.۶ یا ۲.۷ یا …
در مسیر new-project در فولدر env یک پایتون جدید برپا میکند.برای فعال سازی پایتون جدید باید به مسیر زیر رفته و آن را فعال کنیم:
$cd env/bin $source activate
بعد از این عمل اعلان ترمینال تغییر کرده و نام محیط ایزوله قبل از مسیر جاری قرار میگیرد:
ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$ source activate (env) ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$
برای اطمینان از نصب صحیح میتوانیم نسخه پایتون مورد استفاده را بدست بیاوریم :
$python --version Python 3.7.5 $which python /home/ali/Documents/ML/virtualEnv/env/bin/python3
بعد از نوشتن کد مورد نظر و اتمام کار با استفاده از دستور deactivate از محیط virtual environment خارج میشویم .اعلان (env) نیز پاک خواهد شد:
ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$ source activate (env) ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$ which python3 /home/ali/Documents/ML/virtualEnv/env/bin/python3 (env) ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$ deactivate ali@ali-pc:~/Documents/ML/virtualEnv/env/bin$ which python3 /usr/bin/python3
اولین باشید که نظر می دهید