uv - حزمة بيثون الجديدة، وإدارة المشروع والبيئة

الجوانب الإيجابية لـ Python uv

Page content

Python uv (يُنطق “يو-في”) هو حزمة وبرنامج إدارة مشاريع Python الحديثة والقائمة على الأداء العالي المكتوبة بلغة Rust. تم تصميمها كاستبدال مباشر لل أدوات إدارة حزم Python التقليدية مثل pip، pip-tools، virtualenv، pipx، و pyenv، بهدف تبسيط وتسريع مسارات تطوير Python

تم تطوير uv من قِبل Astral، الفريق وراء المدقق الشهير لـ Python Ruff، وتم تصميمها لمعالجة المشكلات الشائعة في البيئة Python - مثل التثبيت البطيء، تعارضات التبعيات، وإدارة البيئات المعقدة - من خلال الاستفادة من أداء Rust وبنية البرمجيات الحديثة.

uv python ultra-violet spa

ميزات uv الرئيسية

  • السرعة الاستثنائية: uv أسرع بكثير من الأدوات التقليدية - عادةً 8–10 مرات أسرع من pip دون استخدام التخزين المؤقت، وصل إلى 80–115 مرات أسرع مع تخزين مؤقت مُسخّن.
  • أداة شاملة: تدمج تثبيت الحزم، حل التبعيات، إدارة البيئات الافتراضية، إدارة إصدارات Python، إنشاء مشاريع، وتشغيل النصوص في أداة واحدة.
  • التوافق: توفر واجهة سطر الأوامر المتوافقة مع pip، مما يجعلها سهلة الاستخدام دون منحنى تعليمي حاد.
  • إدارة التبعيات القوية: توفر حل تبعيات دقيق ودعم ملفات القفل لبيئات قابلة للتكرار.
  • إنشاء بيئات افتراضية تلقائيًا: تنشئ وتعمل على إدارة البيئات الافتراضية تلقائيًا، مما يقلل من الإعداد اليدوي.
  • الدعم عبر المنصات: تعمل على macOS، Linux، وWindows.
  • التركيب المستقل: يمكن تثبيتها دون الحاجة إلى Python أو Rust، باستخدام مثيل بسيط أو curl.

uv vs poetry vs pdm vs pip performance comparison

ما زلت لا تعرف لماذا استخدام uv؟

  • الأداء: يقلل بشكل كبير من أوقات تثبيت الحزم وحل التبعيات.
  • البساطة: يدمج أدوات متعددة في أداة واحدة، مما يسهل إعداد المشاريع وإدارتها.
  • الموثوقية: يوفر بيئات قابلة للتكرار مع رسائل خطأ واضحة وحل التعارضات.
  • المعايير الحديثة: يدعم pyproject.toml لتكوين المشاريع، مما يتوافق مع معايير تعبئة Python الحالية.

أمثلة على استخدامات uv

لنحاول شيئًا مثيرًا!

  • بدء مشروع جديد:
uv init myproject
cd myproject
uv add requests
uv run python script.py

هذا ينشئ دليل مشروع، ويقوم بإعداد بيئة افتراضية، ويقوم بتثبيت التبعيات، ويقوم بتشغيل النصوص في بيئة معزولة.

  • إدارة النصوص مع التبعيات المدمجة:
uv add --script script.py requests
uv run script.py

يمكن لـ uv إدارة التبعيات للنصوص ذات الملف الواحد دون ملفات متطلبات منفصلة.

مقارنة مع الأدوات التقليدية

الميزة uv pip/virtualenv Poetry
السرعة سريعة جدًا بطيئة معتدلة
البيئات الافتراضية تلقائية يدوية تلقائية
حل التبعيات متقدم أساسي متقدم
إدارة إصدارات Python نعم لا (تتطلب pyenv) لا
دعم ملفات القفل نعم لا (تتطلب pip-tools) نعم
تشغيل النصوص مدمج لا محدود

كيف يمكنني تثبيت uv واستخدامها على نظامي

للتثبيت واستخدام uv على نظامك، اتبع هذه الخطوات البسيطة:

التثبيت

  1. المثيل المستقل (الموصى به)
    • Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh

أو، إذا كنت تفضل استخدام wget:

wget -qO- https://astral.sh/uv/install.sh | sh
  • Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • إصدار محدد: يمكنك طلب إصدار محدد من خلال إضافته إلى عنوان الرابط، مثال: https://astral.sh/uv/0.7.15/install.sh.
  1. الخيار البديل: التثبيت عبر pip (إذا كان لديك Python مثبتًا)
pip install uv

ملاحظة: هذا الأسلوب أقل توصية للاستخدام على نطاق النظام ما لم تكن تعرف ما تفعله، لأنه قد يزيد من تعقيد بيئة Python الخاصة بك.

  1. التركيب عبر pipx (للمستخدمين المستقلين)
pipx install uv

هذا الأسلوب نظيف أكثر للاستخدام العالمي إذا كنت تستخدم pipx بالفعل.

البدء

لـ التحقق من التثبيت - قم بتشغيل:

uv

يجب أن ترى قائمة مساعدة تؤكد أن uv تم تثبيتها ومستعدة للاستخدام.

لـ إنشاء وتفعيل بيئة افتراضية

  • إنشاء بيئة افتراضية:
uv venv test
  • تفعيلها على Linux/macOS:
source test/bin/activate
  • تفعيلها على Windows:
.\test\Scripts\activate

الآن يمكنك استخدام uv pip install لتثبيت الحزم في هذه البيئة.

تبدأ مشروعًا جديدًا

uv init

هذا ينشئ ملف pyproject.toml و.gitignore لمشروعك.

إضافة التبعيات

إضافة حزمة:

uv add

هذا يُحدث ملف pyproject.toml ويقوم بإنشاء أو تحديث ملف القفل.

تثبيت التبعيات

تثبيت جميع التبعيات في بيئتك:

uv sync

أو، استخدم الواجهة المتوافقة مع pip:

uv pip install

هذا يضمن تثبيت جميع التبعيات وفقًا لملف القفل الخاص بك.

تشغيل النصوص

استخدم:

uv run script.py

هذا يدير البيئة والتبعيات تلقائيًا لنصك.

التكامل مع المحول (اختياري)

للحصول على تجربة سلسة أكثر، يمكنك إضافة تكامل المحول إلى ملف .zshrc أو .bashrc لتفعيل بيئة افتراضية افتراضية تلقائيًا وتحويل pip إلى uv pip.

مع هذه الخطوات، ستكون uv مثبتة ومستعدة لإدارة مشاريع Python الخاصة بك بسرعة وسهولة.

تثبيت إصدارات Python المحددة

يمكنك استخدام uv لتثبيت إصدارات Python المحددة وإدارتها لمشاريعك.

  • تثبيت أحدث إصدار مستقر من Python:
    uv python install
    
    هذا الأمر يقوم بتنزيل وتثبيت أحدث إصدار مستقر من Python متاح.
  • تثبيت إصدار محدد:
    uv python install 3.12
    
    هذا يثبيت أحدث إصدار مُصلح من Python 3.12 (مثلاً 3.12.3).
  • تثبيت إصدار محدد تمامًا:
    uv python install 3.12.3
    
    هذا يثبيت Python 3.12.3 بالضبط.
  • تثبيت عدة إصدارات:
    uv python install 3.9 3.10 3.11
    
    هذا يثبيت Python 3.9، 3.10، و3.11.
  • تثبيت إصدار يتطابق مع قيود معينة:
    uv python install '>=3.8,=3.11"
    
    هذا يغير متطلبات إصدار Python للمشروع.

ملاحظات إضافية

التنزيل التلقائي: بشكل افتراضي، uv يقوم بتنزيل وتثبيت الإصدارات المطلوبة من Python تلقائيًا إذا لم توجد على نظامك.

Python النظام: يمكن لـ uv استخدام تثبيتات Python الموجودة إذا كانت متاحة، أو يمكنك إجبارها على استخدام Python النظام باستخدام خيار --no-managed-python.

التحديث: يمكنك تحديث إصدارات Python المدارة إلى أحدث إصدار مُصلح باستخدام:

uv python upgrade 3.12

أو تحديث جميع الإصدارات المثبتة:

uv python upgrade

التحديث عبر الإصدارات الثانوية (مثلاً من 3.12 إلى 3.13) غير مدعوم.

باختصار، uv توفر أدوات مرنة وقوية لتثبيت وإدارة وإستخدام إصدارات Python المحددة في مشاريعك.

كيف يكتشف UV المفسّرات المتاحة لـ Python على أنظمة مختلفة

يكتشف UV المفسّرات المتاحة لـ Python على أنظمة مختلفة من خلال فحص مجموعة من المواقع المحددة مسبقًا وسؤال كل مرشح عن بيانات إصداره. إليك كيف يعمل:

  • التركيبات المدارة لـ Python:
    يبدأ UV بالبحث في الدليل المحدد من قبل متغير البيئة UV_PYTHON_INSTALL_DIR، حيث يخزن إصدارات Python المدارة الخاصة به.
  • مسار النظام (PATH):
    على macOS وLinux، يفحص UV للعثور على ملفات تنفيذية تسمى python، python3، أو python3.x (حيث x هو رقم الإصدار) في الدليل المدرج في مسار النظام PATH. على Windows، يبحث عن python.exe.
  • المواقع الخاصة بـ Windows:
    على Windows، يفحص UV أيضًا سجل Windows ومحفظة Microsoft Store لمحفظة Python باستخدام الناتج من py --list-paths.
  • البيئات الافتراضية:
    إذا كانت بيئة افتراضية نشطة أو مُحددة، يفحص UV المفسّر في تلك البيئة للتوافق قبل البحث في أماكن أخرى.
  • استعلام البيانات:
    يتم استعلام كل ملف تنفيذي مكتشف لبيانات إصداره. يتم اعتبار فقط الملفات التنفيذية التي تتطابق مع الإصدار المطلوب (أو قيود الإصدار) كمرشحين. تُتجاهل الملفات غير التنفيذية.
  • التفضيل والتحوّل:
    بشكل افتراضي، يفضل UV تثبيتات Python النظامية، ولكن يمكنك تعديل هذا مع خيارات لتفavor المدارة أو استخدام فقط الإصدارات المدارة/النظامية. إذا لم يتم العثور على مفسّر مناسب، يمكن لـ UV تنزيل وتثبيت الإصدار المطلوب.

هذا عملية اكتشاف قوية تضمن أن UV يمكنها العثور على المفسّر الصحيح لـ Python عبر أنظمة التشغيل المختلفة والبيئات.

روابط مفيدة