Rumah >pembangunan bahagian belakang >Tutorial Python >Memperkenalkan uv: Pengurus Pakej Python Generasi Seterusnya

Memperkenalkan uv: Pengurus Pakej Python Generasi Seterusnya

Patricia Arquette
Patricia Arquetteasal
2024-12-19 06:34:26928semak imbas

Evolusi Python berkait rapat dengan kemajuan dalam pengurusan pakej, daripada pemasangan manual kepada alatan seperti pip dan puisi. Walau bagaimanapun, apabila projek berkembang dalam kerumitan, alat tradisional sering kali gagal dalam kelajuan dan kecekapan.

uv ialah pakej Python yang canggih dan pengurus projek yang dibina dengan Rust, bertujuan untuk mengubahnya. Menggabungkan kefungsian alatan seperti pip, puisi dan virtualenv, uv memperkemas tugas seperti pengurusan pergantungan, pelaksanaan skrip dan pembinaan projek—semuanya dengan prestasi yang luar biasa. Keserasian lancarnya dengan arahan pip, tidak memerlukan keluk pembelajaran tambahan.

Dalam tutorial ini, kami akan meneroka cara memasang uv dan memanfaatkan sepenuhnya ciri-cirinya. Daripada menyediakan projek dan mengurus kebergantungan kepada menjalankan skrip dan memanfaatkan antara muka pip yang dipertingkatkan.

Bermula

Jadual kandungan

  • had pip
  • Apakah itu uv
  • Ciri utama uv
  • Tanda aras
  • Pemasangan
  • Mencipta persekitaran maya
  • Membina apl kelalang menggunakan uv
  • Memasang ular sawa dengan uv
  • Alat
  • Helaian curang
  • Had Semasa

had pip

Pip ialah sistem pengurusan pakej yang digunakan secara meluas yang ditulis dalam Python, direka untuk memasang dan mengurus pakej perisian. Walau bagaimanapun, walaupun popular, ia sering dikritik kerana menjadi salah satu alat pengurusan pakej paling lambat untuk Python. Aduan tentang "pemasangan pip menjadi perlahan" adalah perkara biasa sehingga ia kerap muncul dalam forum dan urutan pembangun.

Satu kelemahan ketara pip ialah kecenderungannya terhadap bau ketergantungan, yang berlaku apabila fail konfigurasi ketergantungan ditulis atau diselenggara dengan buruk. Isu ini boleh membawa kepada akibat yang serius, seperti peningkatan kerumitan dan pengurangan kebolehselenggaraan projek.

Satu lagi had pip ialah ketidakupayaannya untuk memadankan kod Python secara konsisten dengan tepat semasa memulihkan persekitaran masa jalan. Ketidakpadanan ini boleh mengakibatkan kadar kejayaan yang rendah untuk inferens pergantungan, menjadikannya mencabar untuk mencipta semula persekitaran projek dengan pasti.

Apa itu uv

uv ialah pengurus pakej Python berprestasi tinggi moden, dibangunkan oleh pencipta ruff dan ditulis dalam Rust. Direka sebagai pengganti drop-in untuk pip dan pip-tools, ia memberikan kelajuan dan keserasian yang luar biasa dengan alatan sedia ada.

Ciri utama termasuk sokongan untuk pemasangan boleh diedit, kebergantungan Git dan URL, fail kekangan, indeks tersuai dan banyak lagi. persekitaran maya yang mematuhi piawaian uv berfungsi dengan lancar dengan alatan lain, mengelakkan penguncian atau penyesuaian. Ia adalah platform merentas, menyokong Linux, Windows dan macOS serta telah diuji secara meluas terhadap indeks PyPI.

Memfokuskan pada kesederhanaan, kelajuan dan kebolehpercayaan, uv menangani masalah sakit pembangun biasa seperti pemasangan perlahan, konflik versi dan pengurusan pergantungan yang kompleks, menawarkan penyelesaian intuitif untuk pembangunan Python moden.

Ciri utama uv

  • ⚖️ Penggantian Drop-in: Menggantikan pip, pip-tools, virtualenv dan alatan lain dengan lancar dengan keserasian penuh.
  • ⚡ Kelajuan Membara: 10–100x lebih pantas daripada alatan tradisional seperti pip, kompil pip dan penyegerakan pip.
  • ? Cekap Ruang Cakera: Menggunakan cache global untuk penyahduaan pergantungan, menjimatkan storan.
  • ? Pemasangan Fleksibel: Boleh dipasang melalui curl, pip atau pipx tanpa memerlukan Rust atau Python.
  • ? Diuji Teliti: Prestasi terbukti pada skala dengan 10,000 pakej PyPI teratas.
  • ?️ Sokongan Cross-Platform: Serasi sepenuhnya dengan macOS, Linux dan Windows.
  • ? Pengurusan Ketergantungan Lanjutan: Ciri termasuk penggantian versi kebergantungan, strategi penyelesaian alternatif dan penyelesai penjejakan konflik.
  • ⁉️ Kosongkan Pemesejan Ralat: Pengendalian ralat terbaik dalam kelas memastikan pembangun dapat menyelesaikan konflik dengan cekap.
  • ? Ciri Python Moden: Menyokong pemasangan boleh edit, kebergantungan Git, URL langsung, kebergantungan setempat, fail kekangan dan banyak lagi.
  • ? Perkakas Bersatu: Menggabungkan kefungsian alatan seperti pip, pipx, puisi, pyenv, twine dan banyak lagi ke dalam satu penyelesaian.
  • ?️ Pengurusan Aplikasi dan Skrip: Memasang dan mengurus versi Python, menjalankan skrip dengan metadata pergantungan sebaris dan menyokong aliran kerja projek yang komprehensif.
  • ?️ Fail Kunci Universal: Memudahkan pengurusan projek dengan fail kunci yang konsisten dan mudah alih.
  • ? Sokongan Ruang Kerja: Mengendalikan projek berskala dengan pengurusan ruang kerja gaya Kargo.

Penanda aras

Introducing uv: Next-Gen Python Package Manager
sumber: https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
Menyelesaikan (kiri) dan memasang (kanan) kebergantungan menggunakan cache hangat, mensimulasikan proses mencipta semula persekitaran maya atau menambah kebergantungan baharu pada projek sedia ada.

Introducing uv: Next-Gen Python Package Manager
sumber: https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
Menyelesaikan (kiri) dan memasang (kanan) kebergantungan dengan cache sejuk mensimulasikan pelaksanaan dalam persekitaran yang bersih. Tanpa caching, uv adalah 8–10x lebih pantas daripada pip dan pip-tools, dan dengan cache hangat, ia mencapai kelajuan 80–115x lebih pantas.

Introducing uv: Next-Gen Python Package Manager
sumber: https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
Mencipta persekitaran maya dengan pakej benih (kiri) dan tanpa (kanan) seperti pip dan setuptools. uv adalah kira-kira 80x lebih pantas daripada python -m venv dan 7x lebih pantas daripada virtualenv, semuanya semasa beroperasi secara bebas daripada Python.

Pemasangan

Memasang uv adalah pantas dan mudah. Anda boleh memilih pemasang kendiri atau memasangnya terus daripada PyPI.

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
pip install uv

# With pipx.
pipx install uv

# With Homebrew.
brew install uv

# With Pacman.
pacman -S uv

Introducing uv: Next-Gen Python Package Manager
Introducing uv: Next-Gen Python Package Manager

Sebelum menggunakan uv, kita perlu menambah laluan uv kepada pembolehubah persekitaran.
Untuk Linux dan macOS, ubah suai pembolehubah persekitaran PATH menggunakan arahan berikut dalam terminal:

export PATH="$HOME/.local/bin:$PATH"

Untuk tetingkap, Untuk menambah direktori pada pembolehubah persekitaran PATH untuk pengguna dan sistem pada Windows, cari Pembolehubah Persekitaran dalam panel carian. Di bawah Pembolehubah pengguna / Pembolehubah sistem, pilih pembolehubah Laluan, klik Edit, kemudian klik Baharu dan tambah laluan yang dikehendaki.

%USERPROFILE%\.local\bin

Introducing uv: Next-Gen Python Package Manager
Selepas pemasangan, jalankan arahan uv dalam terminal untuk mengesahkan bahawa ia telah dipasang dengan betul.

Introducing uv: Next-Gen Python Package Manager

Mencipta persekitaran maya

Mewujudkan persekitaran maya dengan uv adalah mudah dan mudah. Gunakan arahan berikut, bersama-sama dengan nama persekitaran yang anda inginkan, untuk menciptanya.

uv venv
  • Jalankan arahan berikut untuk mengaktifkan persekitaran maya.
# On macOS and Linux.
source .venv/bin/activate

# On Windows.
.venv\Scripts\activate

Memasang pakej

Memasang pakej ke dalam persekitaran maya mengikut proses biasa. Pelbagai kaedah pemasangan diberikan di bawah.

uv pip install flask                # Install Flask.
uv pip install -r requirements.txt  # Install from a requirements.txt file.
uv pip install -e .                 # Install current project in editable mode.
uv pip install "package @ ."        # Install current project from disk
uv pip install "flask[dotenv]"      # Install Flask with "dotenv" extra.

Introducing uv: Next-Gen Python Package Manager

Untuk menyegerakkan kebergantungan terkunci dengan persekitaran maya, gunakan arahan berikut:

uv pip sync requirements.txt  # Install dependencies from a requirements.txt file.

uv menyokong pelbagai argumen baris perintah yang serupa dengan alat sedia ada, termasuk -r requirements.txt, -c constraints.txt, -e ., --index-url dan banyak lagi.

Membina aplikasi kelalang menggunakan uv

Mari terokai beberapa arahan berkaitan projek dengan uv. Mulakan dengan memulakan projek Python bernama "projek sampel."

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
pip install uv

# With pipx.
pipx install uv

# With Homebrew.
brew install uv

# With Pacman.
pacman -S uv

Navigasi ke direktori projek sampel. uv memulakan projek dengan fail penting seperti app.py, requirements.txt, README.md dan banyak lagi.

Introducing uv: Next-Gen Python Package Manager

Gunakan arahan run untuk melaksanakan contoh fail Python. Proses ini mula-mula mencipta folder persekitaran maya dan kemudian menjalankan fail Python.

export PATH="$HOME/.local/bin:$PATH"

Introducing uv: Next-Gen Python Package Manager

Pasang kelalang

Tambahkan Flask pada kebergantungan projek anda.

%USERPROFILE%\.local\bin

Cipta Aplikasi Flask

Buat yang baharu dan tulis kod berikut.

uv venv

Jalankan apl

Gunakan arahan uv run untuk melaksanakan aplikasi.

# On macOS and Linux.
source .venv/bin/activate

# On Windows.
.venv\Scripts\activate

Buka penyemak imbas atau gunakan alat seperti curl atau Posmen untuk menghantar permintaan GET.

Introducing uv: Next-Gen Python Package Manager
Introducing uv: Next-Gen Python Package Manager

Memasang python dengan uv

Menggunakan uv untuk memasang Python adalah pilihan, kerana ia berfungsi dengan lancar dengan pemasangan Python sedia ada. Walau bagaimanapun, jika memasang Python melalui uv lebih disukai, ia boleh dilakukan dengan arahan mudah:

uv pip install flask                # Install Flask.
uv pip install -r requirements.txt  # Install from a requirements.txt file.
uv pip install -e .                 # Install current project in editable mode.
uv pip install "package @ ."        # Install current project from disk
uv pip install "flask[dotenv]"      # Install Flask with "dotenv" extra.

Introducing uv: Next-Gen Python Package Manager

Pendekatan ini selalunya lebih mudah dan boleh dipercayai berbanding kaedah tradisional, kerana ia mengelakkan keperluan untuk mengurus repositori atau memuat turun pemasang. Hanya laksanakan arahan dan persediaan sedia untuk digunakan.

Alatan

Alat CLI boleh dipasang dan digunakan dengan arahan uv. Contohnya, alat huggingface_hub boleh dipasang untuk membolehkan menarik dan menolak fail ke repositori Memeluk Wajah.

  • Gunakan arahan berikut untuk memasang huggingface_hub menggunakan uv.
uv pip sync requirements.txt  # Install dependencies from a requirements.txt file.

Introducing uv: Next-Gen Python Package Manager

  • Arahan berikut memaparkan semua alatan yang dipasang:
uv init sample-project

Introducing uv: Next-Gen Python Package Manager

Lembaran curang

Berikut ialah helaian curang pantas untuk melaksanakan operasi biasa dengan uv:

Introducing uv: Next-Gen Python Package Manager

Had Semasa

Walaupun uv menawarkan penyelesaian yang pantas dan cekap untuk pengurusan pakej Python, ia mempunyai beberapa batasan:

  • Keserasian pip tidak lengkap: Walaupun uv menyokong sebahagian besar antara muka pip, ia belum lagi meliputi keseluruhan set ciri. Sebahagian daripada perbezaan ini adalah pilihan reka bentuk yang disengajakan, manakala yang lain berpunca daripada uv yang masih dalam peringkat awal pembangunannya. Untuk perbandingan terperinci, rujuk panduan keserasian pip.
  • Keperluan Khusus Platform.txt: Seperti pip-compile, uv menjana fail requirements.txt khusus platform. Ini berbeza dengan alatan seperti Puisi dan PDM, yang mencipta fail puisi.kunci dan pdm.lock platform-agnostik. Akibatnya, fail requirements.txt uv mungkin kurang mudah alih merentas platform dan versi Python yang berbeza.

Terima kasih kerana membaca artikel ini !!

Terima kasih Gowri M Bhatt kerana menyemak kandungan.

Jika anda menyukai artikel ini, sila klik pada butang hati ♥ dan kongsi untuk membantu orang lain menemuinya!

Sumber

uv - Pakej Python dan pengurus projek yang sangat pantas, ditulis dalam Rust | docs.astral.sh

Atas ialah kandungan terperinci Memperkenalkan uv: Pengurus Pakej Python Generasi Seterusnya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn