مدیریت محیط مجازی (Virtual Environment) در پایتون با venv

اگر تا امروز با دستور pip install پکیجها را مستقیم روی سیستم خود نصب کردهاید، احتمالاً دیر یا زود با این مشکل روبهرو شدهاید: پروژهی «الف» به نسخه ۱ یک کتابخانه نیاز دارد، پروژهی «ب» به نسخه ۳ همان کتابخانه؛ و نصب هرکدام، دیگری را خراب میکند. راهحل این مشکل، محیط مجازی (virtual environment) است.
محیط مجازی دقیقاً چیست؟
محیط مجازی یک پوشهی مجزا و ایزوله است که نسخهی مخصوص به خودِ پایتون و پکیجهای آن پروژه را نگه میدارد — کاملاً جدا از پایتونِ نصبشده روی سیستم و جدا از پروژههای دیگر. با این کار هر پروژه، دنیای مستقل خودش را دارد.
ساخت و فعالسازی محیط مجازی با venv
پایتون از نسخه ۳.۳ به بعد، ابزار venv را بهصورت پیشفرض همراه خود دارد؛ نیازی به نصب جداگانه نیست.
# ساخت محیط مجازی در پوشهای به نام .venv
python -m venv .venv
# فعالسازی در ویندوز
.venv\Scripts\activate
# فعالسازی در macOS/Linux
source .venv/bin/activate
وقتی محیط فعال است، نام آن معمولاً در ابتدای خط فرمان نمایش داده میشود. از این لحظه، هر پکیجی که با pip install نصب کنید، فقط در همین پروژه در دسترس است.
فایل requirements.txt: مستندسازی وابستگیها
بعد از نصب پکیجهای موردنیاز، خروجی آنها را در یک فایل ذخیره کنید تا هرکس دیگری (یا خودتان در آینده) بتواند دقیقاً همان محیط را بازسازی کند:
pip freeze > requirements.txt
و برای نصب همان پکیجها روی یک سیستم دیگر:
pip install -r requirements.txt
چرا این موضوع مهمتر از چیزی است که فکر میکنید
نادیده گرفتن محیط مجازی معمولاً در پروژههای کوچک و شخصی مشکلی ایجاد نمیکند، اما در کار تیمی و پروژههای واقعی، نبود آن یکی از رایجترین دلایل خطای «روی سیستم من کار میکرد!» است. عادتکردن به ساختن یک محیط مجازی برای هر پروژه، از همان روز اول، یکی از سادهترین کارهایی است که میتوانید برای حرفهایتر شدن انجام دهید.
جمعبندی
قانون ساده است: هیچوقت پکیجی را مستقیم روی پایتون سیستم نصب نکنید. برای هر پروژه یک venv جدا بسازید، وابستگیها را در requirements.txt مستند کنید، و محیط پروژههایتان همیشه تمیز و قابلبازسازی میماند.


