uv - नया पाइथन पैकेज, प्रोजेक्ट, और एन्वायर्नमेंट मैनेजर

पाइथन UV के अच्छे पहलू

Page content

Python uv (उच्चारण “यू-वी”) एक आधुनिक, उच्च प्रदर्शन Python पैकेज और प्रोजेक्ट मैनेजर है जो Rust में लिखा गया है। यह पारंपरिक Python पैकेज मैनेजमेंट टूल्स जैसे pip, pip-tools, virtualenv, pipx, और pyenv के लिए एक ड्रॉप-इन रिप्लेसमेंट के रूप में डिज़ाइन किया गया है, जिसका उद्देश्य Python विकास वर्कफ्लो को सरल और तेज़ बनाना है।

uv को Astral टीम द्वारा विकसित किया गया है, जो लोकप्रिय Python लिंटर Ruff के पीछे है, और यह Rust के प्रदर्शन और आधुनिक सॉफ्टवेयर आर्किटेक्चर का उपयोग करके Python इकोसिस्टम में सामान्य दर्द बिंदुओं जैसे धीमी इंस्टॉलेशन, डिपेंडेंसी कन्फ्लिक्ट्स, और जटिल एन्वायर्नमेंट मैनेजमेंट को संबोधित करने के लिए डिज़ाइन किया गया है।

uv python ultra-violet spa

uv के मुख्य विशेषताएं

  • अतिशय गति: uv पारंपरिक टूल्स से काफी तेज़ है—आमतौर पर 8–10 गुना तेज़ है बिना कैशिंग के, और गर्म कैश के साथ 80–115 गुना तेज़ हो सकता है।
  • एकल टूल: पैकेज इंस्टॉलेशन, डिपेंडेंसी रिज़ॉल्यूशन, वर्चुअल एन्वायर्नमेंट मैनेजमेंट, Python वर्जन मैनेजमेंट, प्रोजेक्ट स्कैफोल्डिंग, और स्क्रिप्ट एक्सीक्यूशन को एक ही टूल में मिलाता है।
  • संगतता: एक pip-संगत कमांड-लाइन इंटरफेस प्रदान करता है, जिससे इसे अपनाना आसान होता है बिना किसी कठिन सीखने के।
  • मजबूत डिपेंडेंसी मैनेजमेंट: सटीक डिपेंडेंसी रिज़ॉल्यूशन और लॉकफाइल सपोर्ट प्रदान करता है पुनरुत्पादित एन्वायर्नमेंट्स के लिए।
  • स्वचालित वर्चुअल एन्वायर्नमेंट्स: स्वचालित रूप से वर्चुअल एन्वायर्नमेंट्स बनाता और मैनेज करता है, जिससे मैनुअल सेटअप कम होता है।
  • क्रॉस-प्लैटफॉर्म सपोर्ट: macOS, Linux, और Windows पर काम करता है।
  • स्टैंडअलोन इंस्टॉलेशन: Python या Rust की आवश्यकता के बिना एक सरल इंस्टॉलर या curl का उपयोग करके इंस्टॉल किया जा सकता है।

uv vs poetry vs pdm vs pip performance comparison

अभी भी अनिश्चित हैं कि uv का उपयोग क्यों करें?

  • प्रदर्शन: पैकेज इंस्टॉलेशन और डिपेंडेंसी रिज़ॉल्यूशन के समय को महत्वपूर्ण रूप से कम करता है।
  • सरलता: कई टूल्स को एक में मिलाता है, जिससे प्रोजेक्ट सेटअप और मैनेजमेंट सरल होता है।
  • विश्वसनीयता: स्पष्ट त्रुटि संदेशों और कन्फ्लिक्ट रिज़ॉल्यूशन के साथ स्थिर, पुनरुत्पादित एन्वायर्नमेंट्स प्रदान करता है।
  • आधुनिक मानक: प्रोजेक्ट कॉन्फ़िगरेशन के लिए pyproject.toml का सपोर्ट करता है, जो वर्तमान Python पैकेजिंग मानकों के साथ संरेखित है।

उदाहरण उपयोग मामले

चलो कुछ रोमांचक करने का प्रयास करें!

  • नई प्रोजेक्ट शुरू करना:
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"
  • विशिष्ट वर्जन: आप URL में वर्जन शामिल करके एक विशिष्ट वर्जन अनुरोध कर सकते हैं, उदाहरण के लिए, https://astral.sh/uv/0.7.15/install.sh
  1. वैकल्पिक: pip के माध्यम से इंस्टॉल करें (अगर आपके पास Python इंस्टॉल किया हुआ है)
pip install uv

नोट: यह विधि सिस्टम-वाइड एक्सेस के लिए कम सिफारिश की जाती है जब तक कि आप जानते हैं कि आप क्या कर रहे हैं, क्योंकि यह आपके सिस्टम Python एन्वायर्नमेंट को क्लटर कर सकता है।

  1. pipx के माध्यम से इंस्टॉल करें (आइसोलेटेड, यूजर-वाइड इंस्टॉलेशन के लिए)
pipx install uv

यह विधि pipx का उपयोग करने वालों के लिए ग्लोबल एक्सेस के लिए साफ़ है।

शुरू करने के लिए

इंस्टॉलेशन की जांच करने के लिए - चलाएं:

uv

आपको uv इंस्टॉल और तैयार होने की पुष्टि करने वाला एक हेल्प मेनू दिखना चाहिए।

एक वर्चुअल एन्वायर्नमेंट बनाना और सक्रिय करना

  • एक venv बनाएं:
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 इंस्टॉलेशन का उपयोग कर सकता है, या आप --no-managed-python फ्लैग का उपयोग करके इसे सिस्टम Python का उपयोग करने के लिए मजबूर कर सकते हैं।

अपग्रेड: आप uv-मैनेज्ड 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 PATH में सूचीबद्ध डायरेक्टरी में python, python3, या python3.x (जहां x एक वर्जन नंबर है) नाम के एक्सीक्यूटेबल्स की जांच करता है। Windows पर, यह python.exe की खोज करता है।
  • Windows-विशिष्ट स्थान: Windows पर, uv Windows रजिस्टर और Microsoft Store Python इंटरप्रेटर्स की भी जांच करता है, py --list-paths के आउटपुट का उपयोग करके।
  • वर्चुअल एन्वायर्नमेंट्स: अगर एक वर्चुअल एन्वायर्नमेंट सक्रिय है या निर्दिष्ट है, तो uv उस एन्वायर्नमेंट में इंटरप्रेटर की जांच करता है पहले कि कहीं और देखे।
  • मेटाडेटा प्रश्न: प्रत्येक खोजी गई एक्सीक्यूटेबल से उसके वर्जन मेटाडेटा के लिए प्रश्न किया जाता है। केवल वे एक्सीक्यूटेबल्स जो अनुरोधित वर्जन (या वर्जन कंस्ट्रेंट) के साथ मेल खाते हैं, उन्हें विचार किया जाता है। नॉन-एक्सीक्यूटेबल फाइल्स को अनदेखा किया जाता है।
  • प्राथमिकता और फॉलबैक: डिफ़ॉल्ट रूप से, uv सिस्टम Python इंस्टॉलेशन को पसंद करता है, लेकिन आप विकल्पों का उपयोग करके इसे मैनेज्ड या केवल मैनेज्ड/सिस्टम वर्जन का उपयोग करने के लिए समायोजित कर सकते हैं। अगर कोई उपयुक्त इंटरप्रेटर नहीं मिलता है, तो uv आवश्यक वर्जन डाउनलोड और इंस्टॉल कर सकता है।

यह मजबूत खोज प्रक्रिया सुनिश्चित करती है कि uv विभिन्न ऑपरेटिंग सिस्टम और एन्वायर्नमेंट्स के माध्यम से सही Python इंटरप्रेटर को विश्वसनीय रूप से लोकेट और उपयोग कर सकता है।

उपयोगी लिंक्स