# uv **Repository Path**: rcliang/uv ## Basic Information - **Project Name**: uv - **Description**: python包管理器uv的使用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-30 - **Last Updated**: 2025-10-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # uv #### 介绍 python包管理器uv的使用 #### 安装 uv 在 macOS、Linux 或 WSL 上,可以使用以下一键安装脚本: ```bash curl -LsSf https://astral.sh/uv/install.sh | sh ``` 在 Windows 上,可以使用 PowerShell: ```bash powershell -c "irm https://astral.sh/uv/install.ps1 | iex" ``` 也可以通过 `pip` 安装(但通常推荐使用上述独立安装方式): ```bash pip install uv ``` #### 常规使用使用 ```bash # 1. 安装 uv powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # 2. 安装所需的 Python 版本 uv python install 3.11 uv python install 3.12 # 可以安装多个版本 # 3. 查看已安装或者可安装的Python版本 uv python list # 4. 初始化项目 uv init my-project cd my-project # 或者指定python版本 uv init my-project --python 3.11 # 5. 激活虚拟环境 uv venv # 或者使用特定 Python 版本创建虚拟环境(不存在会自动增加) uv venv --python 3.11 # 6. 安装依赖 uv sync # 根据 pyproject.toml 安装所有依赖 uv add requests uv add --dev pytest black # 或者 uv pip install pandas uv pip uninstall requests # 7.查看包 uv pip list # 8.出包 uv pip freeze > requirements.txt # 简单整个待验证 # 在开发机器上创建离线包缓存 uv sync --offline # 将整个项目目录(包括 uv 的缓存)复制到目标机器 # 在目标机器上离线安装 uv sync --offline # 9.执行脚本 uv run python script.py # 或者部署脚本例如Flask部署脚本 uv run gunicorn -w 4 -b 0.0.0.0:8000 app:app # 10.重新同步依赖 uv sync ``` #### 基本使用 ##### 1. 初始化一个新项目 这会在当前目录创建一个新的 Python 项目,包括 `pyproject.toml` 文件。 ```bash uv init my-project cd my-project ``` ##### 2. 添加依赖 使用 `uv add` 命令来添加依赖,它会自动更新 `pyproject.toml` 并执行安装。 ```bash # 添加一个包 uv add requests # 添加多个包,并指定版本 uv add "flask>=2.0.1" "pydantic[email]" # 添加开发依赖 uv add --dev pytest black ``` 这相当于 `pip install`,但更直观地管理了项目文件。 ##### 3. 从现有项目安装依赖 如果你克隆了一个已有项目,或者想根据 `pyproject.toml` 或 `requirements.txt` 安装所有依赖,使用 `uv sync`。 ```bash # 根据 pyproject.toml 安装所有依赖 uv sync # 同时安装开发依赖 uv sync --dev # 从 requirements.txt 安装 uv pip install -r requirements.txt # 或者更推荐的方式:使用 sync uv sync --requirements-file requirements.txt ``` ##### 4. 运行命令(类似 `npx`) `uv run` 命令非常强大,它会在当前项目的上下文中(自动处理虚拟环境)运行命令。 ```bash # 运行一个 Python 脚本 uv run python myscript.py # 运行一个通过依赖安装的命令行工具,无需先激活虚拟环境 uv run python -m pytest uv run black . ``` ##### 5. 管理虚拟环境 uv 内置了虚拟环境管理,你无需手动使用 `python -m venv`。 ```bash # 在当前目录 .venv 创建虚拟环境 uv venv # 或者指定Python版本 uv venv --python 3.11 # 指定python路径 uv venv --python "C:\Python311\python.exe" # 查看已安装的 Python 版本 uv python list # 激活虚拟环境 (与传统方式一样) # On Linux/macOS: source .venv/bin/activate # On Windows: .venv\Scripts\activate # 当你使用 `uv add` 或 `uv sync` 时,如果检测到当前目录有 .venv,会自动安装到里面。 ``` **便捷之处**:即使不手动激活虚拟环境,`uv run` 也会自动使用当前项目下的 `.venv`。 ##### 6. 生成锁文件并用于生产环境 uv 支持生成确定的、锁定的依赖列表,确保生产环境和开发环境一致。 ```bash # 生成 uv.lock 文件 (当你运行 uv add/uv sync 时通常会自动生成/更新) uv sync # 这会创建或更新 uv.lock 文件 # 在生产环境中,使用 --frozen` 或 `--locked` 标志来严格安装锁文件中指定的版本 uv sync --frozen ``` ##### 7.配置镜像源 - Windows: `%APPDATA%\uv\uv.toml`(C:\Users\tx\AppData\Roaming\uv) - Linux/macOS:` ~/.config/uv/uv.toml` 添加国内镜像源 编辑文件内容如下: ```bash [[index]] url = "https://mirrors.aliyun.com/pypi/simple/" default = true # 或使用清华源 # url = "https://pypi.tuna.tsinghua.edu.cn/simple/" ``` #### 高级功能 ##### 作为 `pip` 的替代品 你可以直接使用 `uv pip` 来执行任何你熟悉的 `pip` 命令,但速度会快得多。 ```bash uv pip list uv pip install pandas uv pip uninstall requests uv pip freeze > requirements.txt ``` ##### 管理 Python 版本 ```bash # 查找并安装 Python 3.12 uv python install 3.12 # 在当前项目中使用特定的 Python 版本创建虚拟环境 uv venv --python 3.12 ``` #### 项目打包 执行打包脚本(打包的时候只能打包src目录中的相关文件) ```bash uv build ``` 目录中会生成dist目录一个是压缩包,一个是.wl文件将文件复制到uv虚拟环境中执行脚本即可自动安装 ```bash uv add ./my_project-0.1.0.tar.gz uv add ./xxxx.wl ```