Rumah >pembangunan bahagian belakang >Tutorial Python >UV sebagai alternatif kepada Puisi
Terdapat terlalu banyak pengurus pakej untuk Python. Ini, sudah tentu, mempunyai sebab yang jelas - kekurangan fungsi pip, pengurus pakej terbina dalam. Namun begitu, perfeksionis dalaman mahukan penyelesaian mudah di luar kotak. Pasang Python - dan anda segera mendapat pengurus pakej yang pantas dan mudah, dan sebaik-baiknya pengurus versi Python. Tetapi sebaliknya anda mendapat pip. Sesetengah orang, sudah tentu, benar-benar menggunakannya, tetapi masih puisi, pdm, conda, pipenv atau sekurang-kurangnya pip-tools adalah lebih mudah.
Baiklah, okey, nampaknya puisi bagus untuk semua orang. Saya menggunakannya sendiri dalam kebanyakan projek. Tetapi pemasangan kebergantungan mula kelihatan perlahan - terutamanya apabila membina semula bekas docker. Selain itu, terdapat kerumitan dengan memasang puisi itu sendiri atau menukar versi python - anda menukar versi melalui, sebagai contoh, pyenv, dan puisi memberikan ralat apabila anda cuba mencipta semula persekitaran. Walaupun diandaikan bahawa ia boleh berfungsi dengan versi Python yang berbeza. Ini boleh diselesaikan, sudah tentu, dengan mudah - dengan menyatakan laluan penuh kepada penterjemah, tetapi ia masih menjadi tongkat. Serta memasang pyenv yang sama, dan secara amnya bekerja dengannya. Dan nampaknya tiada apa-apa lagi untuk mengawal versi python.
Oleh itu, pada bulan Februari, penyelesaian menarik muncul daripada pencipta Ruff. Pengurus pakej UV ditulis dalam Rast. Berasaskan konsol semata-mata, sudah tentu, dan sintaksnya sangat mengingatkan puisi. Dari segi fungsi, ini adalah perkara yang hampir sama, tetapi dengan banyak barangan dan beberapa kali lebih pantas. Dokumen menunjukkan gambar rajah masa pemasangan ini untuk set kebergantungan yang sama:
Sintaks benar-benar serupa dengan puisi. Beginilah, sebagai contoh, projek dicipta (terus ke direktori):
uv init project cd project
Di sana kami mempunyai struktur ini:
project ├── .python-version ├── hello.py ├── pyproject.toml └── README.md
Pergantungan, seperti puisi, disimpan dalam konfigurasi pyproject.toml, versi python disimpan dalam versi .python.
Mari kita cipta persekitaran maya:
uv venv
Tambah SQLAlchemy bergantung pada:
uv add sqlalchemy
Atau kami boleh menambah versi tertentu:
uv add sqlalchemy@2.0.32
Sekarang mari padamkan:
uv remove sqlalchemy
Kini gula - pengurusan versi python. Mari pasang 3.11.9 dan cipta persekitaran dengan penterjemah sedemikian.
uv python install 3.11.9 uv venv --python 3.11.9
Versi Python akan disimpan dalam versi .python, dan anda tidak perlu menunjukkan perkara ini kepada pengurus pakej setiap kali anda menukar penterjemah, kerana UV ialah pengurus pakej. Lebih-lebih lagi, anda tidak perlu memasang versi secara manual, tetapi segera buat persekitaran dengan versi yang dikehendaki: jika ia tidak dipasang, maka UV itu sendiri akan menariknya, iaitu, anda tidak perlu memikirkannya sama sekali - memang mendebarkan.
Seperti puisi, terdapat fungsi untuk membina dan menerbitkan pakej pada PyPI. Anda boleh membina bekas dan menerbitkan pakej menggunakan dua arahan:
uv build uv publish
Anda juga boleh menggunakan UV sebagai penyelia, dan menjalankan skrip dan aplikasi menggunakan uv run
Dan ceri pada kek ialah imej buruh pelabuhan.
FROM ghcr.io/astral-sh/uv:python3.12 WORKDIR /app RUN uv venv CMD ["run", "app"]
Anda tidak perlu menarik imej ular sawa dan memasang UV di sana melalui pip, anda boleh segera menarik imej UV dan berseronok. Selain itu, terdapat banyak helah lain di sana, tetapi mengenai perkara ini di dok (yang sebenarnya, sangat jelas) - mereka yang memerlukan kerepek ini dalam dok tidak akan takut untuk pergi ke dok.
Secara umum, alat yang sangat mudah dan alternatif yang baik untuk puisi. Tiada sokongan UV dalam mana-mana IDE lagi, tetapi ia hanya menunggu masa. Memang bagus kerana terdapat banyak ciri, saya mahu projek itu dibangunkan. Kongsi siaran ini dan tulis perkara yang anda gunakan.
P.S. Dan anda perlu menikmati TGC: https://t.me/dmkjfss
Atas ialah kandungan terperinci UV sebagai alternatif kepada Puisi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!