115 lines
2.1 KiB
Markdown
115 lines
2.1 KiB
Markdown
---
|
||
title: 【教程】Python 项目和包管理器 uv 安装以及使用
|
||
date: 2024/11/9 13:12
|
||
tags: [windows, linux, uv, python, venv]
|
||
categories: 技术
|
||
permalink: 380.html
|
||
index_img: https://i.dawnlab.me/bf3a9545e37daac5afbd662a9e265b4a.png
|
||
---
|
||
|
||
![UV.png](https://i.dawnlab.me/bf3a9545e37daac5afbd662a9e265b4a.png)
|
||
|
||
# 介绍
|
||
|
||
[官网](https://docs.astral.sh/uv/)
|
||
|
||
uv 是一个用 Rust 编写的 Python 包安装器和解析器。它旨在成为 pip 和 pip-tools 工作流的直接替代品。Astral 的开发者们的目标是创建一个 “Python 的 Cargo”,这是一个全面的 Python 项目和包管理器,速度快、可靠且易于使用。
|
||
|
||
# 安装
|
||
|
||
## 国内安装优化
|
||
|
||
### 添加环境变量
|
||
|
||
使用 GitHub 镜像网站替换掉默认地址,加速下载
|
||
|
||
```env
|
||
UV_INSTALLER_GHE_BASE_URL=https://ghproxy.cn/https://github.com
|
||
UV_PYTHON_INSTALL_MIRROR=https://ghproxy.cn/https://github.com/indygreg/python-build-standalone/releases/download
|
||
```
|
||
|
||
默认使用清华 pypi 源
|
||
|
||
```env
|
||
UV_DEFAULT_INDEX=https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
|
||
```
|
||
|
||
## Windows
|
||
|
||
```powershell
|
||
powershell -ExecutionPolicy ByPass -c "irm https://ghproxy.cn/https://github.com/astral-sh/uv/releases/latest/download/uv-installer.ps1 | iex"
|
||
```
|
||
|
||
## Linux
|
||
|
||
```bash
|
||
curl -LsSf https://ghproxy.cn/https://github.com/astral-sh/uv/releases/latest/download/uv-installer.sh | sh
|
||
```
|
||
|
||
# 使用
|
||
|
||
## 创建项目
|
||
|
||
```bash
|
||
uv init hello-world
|
||
cd hello-world
|
||
```
|
||
|
||
或者
|
||
|
||
```bash
|
||
mkdir hello-world
|
||
cd hello-world
|
||
uv init
|
||
```
|
||
|
||
## 创建虚拟环境
|
||
|
||
```bash
|
||
uv venv .venv
|
||
```
|
||
|
||
指定 Python 版本号,未安装时会自动下载预构建的 Python 安装。
|
||
|
||
```bash
|
||
uv venv .venv --python=3.12
|
||
```
|
||
|
||
## 添加依赖
|
||
|
||
uv 会自动解决依赖关系。
|
||
|
||
```bash
|
||
uv add httpx
|
||
```
|
||
|
||
## 同步依赖环境
|
||
|
||
```bash
|
||
uv sync
|
||
```
|
||
|
||
同时包含所有可选依赖:
|
||
|
||
```bash
|
||
uv sync --all-extras
|
||
```
|
||
|
||
## 导出为传统依赖文件 requirements.txt
|
||
|
||
```bash
|
||
uv export -o requirements.txt
|
||
```
|
||
|
||
不包含 hashes :
|
||
|
||
```bash
|
||
uv export -o requirements.txt --no-hashes
|
||
```
|
||
|
||
同时包含所有可选依赖:
|
||
|
||
```bash
|
||
uv export -o requirements.txt --no-hashes --all-extras
|
||
```
|