แพ็คเกจ Python และตัวจัดการโครงการที่รวดเร็วมากเขียนด้วยภาษา Rust
การติดตั้งการพึ่งพาของ Trio ด้วยแคชอุ่น
pip
, pip-tools
, pipx
, poetry
, pyenv
, twine
, virtualenv
และอีกมากมายpip
10-100 เท่าcurl
หรือ pip
uv ได้รับการสนับสนุนจาก Astral ผู้สร้าง Ruff
ติดตั้ง uv ด้วยตัวติดตั้งแบบสแตนด์อโลนของเรา:
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows.
powershell -ExecutionPolicy ByPass -c " irm https://astral.sh/uv/install.ps1 | iex "
หรือจาก PyPI:
# With pip.
pip install uv
# Or pipx.
pipx install uv
หากติดตั้งผ่านตัวติดตั้งแบบสแตนด์อโลน uv สามารถอัปเดตตัวเองเป็นเวอร์ชันล่าสุดได้:
uv self update
ดูเอกสารการติดตั้งสำหรับรายละเอียดและวิธีการติดตั้งอื่นๆ
เอกสารของ uv มีอยู่ที่ docs.astral.sh/uv
นอกจากนี้ สามารถดูเอกสารอ้างอิงบรรทัดคำสั่งได้ด้วย uv help
uv จัดการการพึ่งพาโครงการและสภาพแวดล้อม ด้วยการรองรับไฟล์ล็อค พื้นที่ทำงาน และอื่นๆ คล้ายกับ rye
หรือ poetry
:
$ uv init example
Initialized project `example` at `/home/user/example`
$ cd example
$ uv add ruff
Creating virtual environment at: .venv
Resolved 2 packages in 170ms
Built example @ file:///home/user/example
Prepared 2 packages in 627ms
Installed 2 packages in 1ms
+ example==0.1.0 (from file:///home/user/example)
+ ruff==0.5.4
$ uv run ruff check
All checks passed!
ดูเอกสารประกอบโครงการเพื่อเริ่มต้น
uv ยังสนับสนุนโครงการก่อสร้างและการเผยแพร่ แม้ว่าจะไม่ได้รับการจัดการด้วย uv ก็ตาม ดูคู่มือการเผยแพร่เพื่อเรียนรู้เพิ่มเติม
uv รันและติดตั้งเครื่องมือบรรทัดคำสั่งที่จัดทำโดยแพ็คเกจ Python คล้ายกับ pipx
เรียกใช้เครื่องมือในสภาพแวดล้อมชั่วคราวโดยใช้ uvx
(นามแฝงสำหรับ uv tool run
):
$ uvx pycowsay ' hello world! '
Resolved 1 package in 167ms
Installed 1 package in 9ms
+ pycowsay==0.0.0.2
"""
------------
< hello world! >
------------
^__^
(oo)_______
(__) )/
||----w |
|| ||
ติดตั้งเครื่องมือด้วย uv tool install
:
$ uv tool install ruff
Resolved 1 package in 6ms
Installed 1 package in 2ms
+ ruff==0.5.4
Installed 1 executable: ruff
$ ruff --version
ruff 0.5.4
ดูเอกสารประกอบเครื่องมือเพื่อเริ่มต้น
uv ติดตั้ง Python และอนุญาตให้สลับระหว่างเวอร์ชันต่างๆ ได้อย่างรวดเร็ว
ติดตั้ง Python หลายเวอร์ชัน:
$ uv python install 3.10 3.11 3.12
Searching for Python versions matching: Python 3.10
Searching for Python versions matching: Python 3.11
Searching for Python versions matching: Python 3.12
Installed 3 versions in 3.42s
+ cpython-3.10.14-macos-aarch64-none
+ cpython-3.11.9-macos-aarch64-none
+ cpython-3.12.4-macos-aarch64-none
ดาวน์โหลดเวอร์ชัน Python ตามต้องการ:
$ uv venv --python 3.12.0
Using Python 3.12.0
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
$ uv run --python [email protected] -- python --version
Python 3.8.16 (a9dbdca6fc3286b0addd2240f11d97d8e8de187a, Dec 29 2022, 11:45:30)
[PyPy 7.3.11 with GCC Apple LLVM 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>>
ใช้เวอร์ชัน Python เฉพาะในไดเร็กทอรีปัจจุบัน:
$ uv python pin [email protected]
Pinned `.python-version` to `[email protected]`
ดูเอกสารการติดตั้ง Python เพื่อเริ่มต้น
uv จัดการการขึ้นต่อกันและสภาพแวดล้อมสำหรับสคริปต์ไฟล์เดียว
สร้างสคริปต์ใหม่และเพิ่มข้อมูลเมตาอินไลน์ที่ประกาศการขึ้นต่อกัน:
$ echo ' import requests; print(requests.get("https://astral.sh")) ' > example.py
$ uv add --script example.py requests
Updated `example.py`
จากนั้น รันสคริปต์ในสภาพแวดล้อมเสมือนที่แยกออกมา:
$ uv run example.py
Reading inline script metadata from: example.py
Installed 5 packages in 12ms
ดูเอกสารประกอบสคริปต์เพื่อเริ่มต้น
uv ให้การแทนที่แบบดรอปอินสำหรับคำสั่ง pip
, pip-tools
และ virtualenv
ทั่วไป
uv ขยายอินเทอร์เฟซด้วยคุณสมบัติขั้นสูง เช่น การแทนที่เวอร์ชันที่ต้องพึ่งพา ความละเอียดที่ไม่ขึ้นอยู่กับแพลตฟอร์ม ความละเอียดที่ทำซ้ำได้ กลยุทธ์การแก้ปัญหาทางเลือก และอื่นๆ
ย้ายข้อมูลไปยัง uv โดยไม่ต้องเปลี่ยนขั้นตอนการทำงานที่มีอยู่ และสัมผัสประสบการณ์การเร่งความเร็ว 10-100 เท่า ด้วยอินเทอร์เฟซ uv pip
รวบรวมข้อกำหนดลงในไฟล์ข้อกำหนดที่ไม่ขึ้นอยู่กับแพลตฟอร์ม:
$ uv pip compile docs/requirements.in
--universal
--output-file docs/requirements.txt
Resolved 43 packages in 12ms
สร้างสภาพแวดล้อมเสมือน:
$ uv venv
Using Python 3.12.3
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
ติดตั้งข้อกำหนดที่ถูกล็อค:
$ uv pip sync docs/requirements.txt
Resolved 43 packages in 11ms
Installed 43 packages in 208ms
+ babel==2.15.0
+ black==24.4.2
+ certifi==2024.7.4
...
ดูเอกสารประกอบอินเทอร์เฟซ pip เพื่อเริ่มต้น
ดูเอกสารสนับสนุนแพลตฟอร์มของ uv
ดูเอกสารนโยบายการกำหนดเวอร์ชันของ uv
เรามีความกระตือรือร้นที่จะสนับสนุนผู้มีส่วนร่วมทุกระดับและอยากเห็นคุณมีส่วนร่วมในโครงการนี้ ดูคู่มือการมีส่วนร่วมเพื่อเริ่มต้น
ตัวแก้ไขการพึ่งพาของ uv ใช้ PubGrub ภายใต้ประทุน เราขอขอบคุณผู้ดูแล PubGrub โดยเฉพาะ Jacob Finkelman ที่ให้การสนับสนุน
การใช้งาน Git ของ uv นั้นขึ้นอยู่กับ Cargo
การปรับปรุงประสิทธิภาพของ uv บางส่วนได้รับแรงบันดาลใจจากผลงานที่ยอดเยี่ยมที่เราเคยเห็นใน pnpm, Orogene และ Bun นอกจากนี้เรายังได้เรียนรู้มากมายจาก Posy ของ Nathaniel J. Smith และดัดแปลงแทรมโพลีนเพื่อรองรับ Windows
uv ได้รับอนุญาตภายใต้ข้อใดข้อหนึ่ง
ตามตัวเลือกของคุณ
เว้นแต่คุณจะระบุไว้เป็นอย่างอื่นอย่างชัดเจน การสนับสนุนใด ๆ ที่คุณส่งโดยเจตนาเพื่อรวมไว้ใน uv ตามที่กำหนดไว้ในใบอนุญาต Apache-2.0 จะต้องได้รับอนุญาตแบบคู่ตามข้างต้น โดยไม่มีข้อกำหนดหรือเงื่อนไขเพิ่มเติมใด ๆ