پرش به محتویات

محیط Python، venv و pip

برای پروژه‌های Python بهتر است از محیط جداگانه استفاده کنید. محیط جدا باعث می‌شود کتابخانه‌های یک پروژه با پروژه‌های دیگر تداخل نداشته باشند.

بررسی Python

which python3
python3 --version
which pip3
pip3 --version

ساخت پوشه پروژه

mkdir -p ~/projects/python-env-demo
cd ~/projects/python-env-demo

ساخت venv

python3 -m venv .venv

فعال‌سازی محیط:

source .venv/bin/activate

بعد از فعال‌سازی، ابتدای خط Terminal معمولاً نام محیط را نشان می‌دهد.

به‌روزرسانی pip

python -m pip install --upgrade pip

نصب کتابخانه‌ها

مثال:

pip install numpy pandas matplotlib

بررسی نصب:

python -c "import numpy, pandas, matplotlib; print('PYTHON_ENV_OK')"

ذخیره فهرست کتابخانه‌ها

برای اینکه بعداً بتوانید همان محیط را بازسازی کنید:

pip freeze > requirements.txt

نصب از روی فایل:

pip install -r requirements.txt

غیرفعال کردن محیط

deactivate

اجرای Python داخل Slurm با venv

ابتدا فایل نمونه بسازید:

mkdir -p scripts logs

cat > scripts/main.py <<'PYCODE_MAIN'
import os
import platform
from datetime import datetime

print("Python venv job is running")
print("User:", os.getenv("USER"))
print("Host:", platform.node())
print("Time:", datetime.now())
PYCODE_MAIN

فایل Slurm:

cat > run-python-venv.slurm <<'SLURM_JOB'
#!/bin/bash
#SBATCH --job-name=python-venv
#SBATCH --partition=normal
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=2
#SBATCH --mem=4G
#SBATCH --time=00:30:00
#SBATCH --output=logs/python-venv-%j.out
#SBATCH --error=logs/python-venv-%j.err

cd ~/projects/python-env-demo
source .venv/bin/activate
python scripts/main.py
SLURM_JOB

sbatch run-python-venv.slurm

نکات مهم برای venv

نکته توضیح
محل venv بهتر است داخل پوشه پروژه باشد
نام پیشنهادی .venv
اجرای Job داخل فایل Slurm هم باید source .venv/bin/activate باشد
نصب کتابخانه بعد از فعال‌سازی venv انجام شود
حذف محیط با حذف پوشه .venv انجام می‌شود

خطاهای رایج

خطا علت راهکار
ModuleNotFoundError کتابخانه در محیط فعال نصب نیست venv را فعال کنید و نصب کنید
python: command not found دستور python موجود نیست از python3 استفاده کنید یا venv را فعال کنید
No space left on device فضای مسیر پر شده فایل‌های غیرضروری را حذف کنید
Permission denied دسترسی مسیر مشکل دارد مسیر و مالکیت فایل را بررسی کنید

قاعده پیشنهادی

برای هر پروژه یک venv جدا بسازید. از یک محیط مشترک برای همه پروژه‌ها استفاده نکنید.