محیط مجازی پایتون را دیگر دستی نمیسازم
برای مدت طولانی جریان کارم این بود: python -m venv .venv، بعد source، بعد pip install. کار میکرد، ولی هر بار یادم میرفت محیط را فعال کنم و وابستگیها بین پروژهها قاطی میشد. این یادداشت همان روالی است که الان دارم و دیگر اذیتم نمیکند.
روش پایه که هنوز هم خوب است
اگر چیز اضافهای نمیخواهی، همان venv داخلی پایتون کاملاً کافی است:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
یک نکته که دیر یاد گرفتم: وابستگیها را با نسخهی دقیق قفل کن تا روی ماشین دیگر همان چیزی نصب شود که انتظار داری:
pip freeze > requirements.txt
مشکلی که داشتم
روی یک ماشین چند پروژه داشتم که هرکدام نسخهی متفاوتی از یک کتابخانه میخواستند. تا وقتی هر پروژه .venv خودش را داشت همهچیز خوب بود، ولی فعالکردن دستی همیشه یادم میرفت و گاهی روی محیط اشتباه نصب میکردم.
چیزی که الان استفاده میکنم
این روزها از ابزارهایی استفاده میکنم که محیط را بهصورت خودکار به پروژه گره میزنند، یعنی همین که وارد پوشه میشوم محیط درست انتخاب میشود. جزئیات ابزار مهم نیست؛ چیزی که عوض شد این عادت بود:
- هر پروژه محیط جدا و مستقل دارد.
- نسخهی پایتون هر پروژه هم کنار وابستگیها ثبت میشود.
- دیگر هیچوقت دستی activate نمیکنم.
قانون شخصیام شد: هیچوقت با pip چیزی را به پایتونِ سیستم نصب نکن. همیشه داخل یک محیط جدا.
نتیجه این بود که آن کلاس کامل از خطاهای «روی ماشین من کار میکرد» تقریباً از بین رفت.