محیط های مجازی یک تکنیک رایج و موثر در توسعه پایتون هستند. به دست آوردن درک بهتری از نحوه کار آنها، چرایی نیاز به آنها و کارهایی که می توانید با آنها انجام دهید به شما کمک می کند تا بر گردش کار برنامه نویسی پایتون خود تسلط پیدا کنید.
# محیط مجازی در پایتون چیست؟
virtual environment چیست؟ محیط مجازی پایتون یک ساختار دایرکتوری است که هر آنچه را که برای اجرای یک محیط سبک وزن و در عین حال ایزوله پایتون نیاز دارید در اختیار شما قرار می دهد.
در اصل ، هدف اصلی محیط های مجازی پایتون ایجاد یک محیط جداگانه برای پروژه های پایتون است. این بدان معناست که هر پروژه می تواند وابستگی های خاص خود را داشته باشد ، صرف نظر از اینکه هر پروژه دیگری چه وابستگی هایی دارد.
زمانی که در حال کار روی پروژه واقعی هستید به نصب پکیج های خارجی نیاز پیدا میکنید. محیط مجازی به شما اجازه میدهد که بتوانید یک کپی از پایتون اصلی سیستم گرفته و در یک محیط ایزوله روی آن کار کنید. اینکار باعث میشود که پکیج های پروژه های مختلف با یکدیگر تداخل نداشته باشند. virtual environment یکی از مهمترین ابزارهایی است که اکثر توسعه دهندگان پایتون از آن استفاده می کنند.
سناریویی را تصور کنید که در آن روی دو پروژه پایتون مبتنی بر وب کار میکنید و یکی از آنها از جنگو 2 و دیگری از جنگو 3 استفاده میکند. در چنین شرایطی محیط مجازی می تواند برای حفظ وابستگی هر دو پروژه واقعا مفید باشد.
نکته جالب این است که هیچ محدودیتی در تعداد محیط هایی که می توانید داشته باشید وجود ندارد زیرا آنها فقط دایرکتوری هایی هستند که حاوی چند اسکریپت هستند. به علاوه، آنها به راحتی با استفاده از ابزار خط فرمان virtualenv یا pyenv ایجاد می شوند.
یک روش دیگر برای ساخت محیطهای مجازی استفاده از anaconda است. برای یادگیرین آن میتوانید ویدیو آموزش آناکوندا در پایتون را مشاهده کنید.
# نصب محیط مجازی در پایتون
پکیج virtualenv ابزاری برای ایجاد محیط های ایزوله در پایتون است. از نسخه پایتون 3.3، این پکیج در کتابخانه استاندارد پایتون با نام venv ادغام شده است. پس اگر از نسخه پایتون 3.3 به بالا استفاده میکنید، نیازی به نصب چیزی ندارید. اما اگر نسخه پایتون شما پایین تر از 3.3 است با دستورات زیر میتوانید این پکیج را نصب کنید:
pip install virtualenv
بعد از نصب پکیج virtualenv میتوانید با دستور زیر صفحه help این ابزار را ببینید:
$ python3 -m venv -h
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
[--upgrade] [--without-pip] [--prompt PROMPT] [--upgrade-deps]
ENV_DIR [ENV_DIR ...]
Creates virtual Python environments in one or more target directories.
positional arguments:
ENV_DIR A directory to create the environment in.
optional arguments:
-h, --help show this help message and exit
--system-site-packages
Give the virtual environment access to the system
site-packages dir.
--symlinks Try to use symlinks rather than copies, when symlinks
are not the default for the platform.
--copies Try to use copies rather than symlinks, even when
symlinks are the default for the platform.
--clear Delete the contents of the environment directory if it
already exists, before environment creation.
--upgrade Upgrade the environment directory to use this version
of Python, assuming Python has been upgraded in-place.
--without-pip Skips installing or upgrading pip in the virtual
environment (pip is bootstrapped by default)
--prompt PROMPT Provides an alternative prompt prefix for this
environment.
--upgrade-deps Upgrade core dependencies: pip setuptools to the
latest version in PyPI
Once an environment has been created, you may wish to activate it, e.g. by
sourcing an activate script in its bin directory.
# ساخت محیط مجازی در پایتون
venv (برای پایتون 3) و virtualenv (برای پایتون 2) به شما این امکان را می دهند که نصب بسته های جداگانه را برای پروژه های مختلف مدیریت کنید. آنها اساساً به شما امکان می دهند یک محیط پایتون ایزوله "مجازی" ایجاد کنید و پکیج ها را در آن محیط مجازی نصب کنید. هنگامی که پروژه ها را تغییر می دهید، می توانید به سادگی یک محیط مجازی جدید ایجاد کنید و نگران خراب شدن پکیج های نصب شده در محیط های دیگر نباشید. همیشه توصیه می شود در هنگام توسعه برنامه های پایتون از یک محیط مجازی استفاده کنید.
برای ایجاد یک محیط مجازی در پایتون، به دایرکتوری پروژه خود بروید و کتابخانه venv را از مفسر پایتون صدا بزنید:
py -m venv my_env # windows
python3 -m venv my_env # linux
در قطعه کد بالا، ابتدا مفسر پایتون را صدا زدیم، سپس با آپشن m- مشخص کردیم که قرار است یک ماژول از کتابخانه استاندارد پایتون اجرا کنیم به نام venv. در آخر مسیری که قرار است محیط مجازی در آن ساخته شود را مشخص کردیم که ما فقط my_env قرار دادیم. در این صورت محیط مجازی در دایرکتوری فعلی ایجاد خواهد شد.
بعد از اجرا کد بالا، یک دایرکتوری به نام my_env ایجاد خواهد شد که شامل ساختار دایرکتوری مشابه این است:
├── bin
│ ├── activate
│ ├── activate.csh
│ ├── activate.fish
│ ├── easy_install
│ ├── easy_install-3.5
│ ├── pip
│ ├── pip3
│ ├── pip3.5
│ ├── python -> python3.5
│ ├── python3 -> python3.5
│ └── python3.5 -> /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5
├── include
├── lib
│ └── python3.5
│ └── site-packages
└── pyvenv.cfg
در اینجا هر پوشه حاوی موارد زیر است:
- bin: فایل هایی که با محیط مجازی تعامل دارند
- include: هدرهای C که بسته های پایتون را کامپایل می کنند
- lib: یک کپی از نسخه پایتون به همراه یک پوشه site-packages که هر وابستگی در آن نصب شده است
# فعال کردن محیط مجازی در پایتون
بعد از ایجاد کردن محیط مجازی باید آن را فعال کنید. قبل از شروع نصب یا استفاده از پکیج ها در محیط مجازی خود، باید آن را فعال کنید. فعال کردن یک محیط مجازی، فایل های اجرایی پایتون و pip مخصوص محیط مجازی را در PATH پوسته شما قرار می دهد.
با دستورات زیر میتوانید محیط محازی را فعال کنید:
.\my_env\Scripts\activate # windows
source my_env/bin/activate # linux
بعد از فعال شدن محیط مجازی، prompt شما به شکل زیر خواهد بود:
(my_env)$
میتوانید با بررسی مکان مفسر پایتون خود تأیید کنید که در محیط مجازی هستید:
where python # windows
which python # linux
دستورات بالا باید دایرکتوری مفسر پایتون در محیط مجازی را نمایش دهند:
...\my_env\Scripts\python.exe # windows
.../my_env/bin/python # linux
تا زمانی که محیط مجازی شما فعال باشد، pip پکیج ها را در آن محیط خاص نصب میکند و شما میتوانید پکیج ها را در برنامه پایتون خود وارد کرده و از آنها استفاده کنید.
# غیرفعال کردن محیط مجازی در پایتون
اگر می خواهید پروژه را تغییر دهید یا محیط مجازی خود را ترک کنید، به سادگی اجرا کنید:
deactivate
اگر می خواهید دوباره وارد محیط مجازی شوید، کافی است همان دستورالعمل های بالا را در مورد فعال سازی یک محیط مجازی دنبال کنید. نیازی به ایجاد مجدد محیط مجازی نیست.
# نصب پکیج در محیط مجازی پایتون
بعد از اینکه محیط مجازی خود را فعال کردید می توانید پکیج ها را نصب کنید. تمام پکیج هایی که نصب میکند در محیط مجازی نصب خواهند شد. بیایید کتابخانه Requests را از PyPI نصب کنیم:
(my_env)$ pip install requests
pip باید پکیج requests و تمام وابستگی هایش را دانلود و محیط مجازی نصب کند.
ارسال نظر