1778682052
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
scoop 安装的所以
|
||||
# scoop 安装
|
||||
|
||||
全局包:
|
||||
|
||||
@@ -6,23 +6,29 @@ scoop 安装的所以
|
||||
E:\MyScoop\Scoop\apps\python\current\Lib\site-packages
|
||||
```
|
||||
|
||||
最佳实践:虚拟环境(venv)
|
||||
# 虚拟环境(venv)
|
||||
|
||||
传统:
|
||||
## 传统
|
||||
|
||||
```
|
||||
```bash
|
||||
# 创建一个虚拟环境
|
||||
python -m venv .venv
|
||||
.venv\Scripts\Activate.ps1 # 激活
|
||||
|
||||
# 激活
|
||||
.venv\Scripts\Activate.ps1
|
||||
|
||||
pip install requests
|
||||
|
||||
python main.py
|
||||
deactivate # 退出
|
||||
|
||||
# 退出
|
||||
deactivate
|
||||
```
|
||||
|
||||
用 uv 完全不需要 activate/deactivate:
|
||||
## uv
|
||||
|
||||
```
|
||||
uv init
|
||||
uv add requests # 自动管理 .venv
|
||||
uv add numpy # 自动管理 .venv
|
||||
uv run main.py # 自动用 .venv 里的环境运行
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
## 一、项目初始化
|
||||
|
||||
| 场景 | 命令 | 说明 |
|
||||
|------|------|------|
|
||||
| 创建新项目 | `uv init my-project` | 生成项目目录、`pyproject.toml`、`.python-version` |
|
||||
| 在已有目录初始化 | `uv init` | 当前目录下初始化,不新建子目录 |
|
||||
| 指定 Python 版本创建 | `uv init --python 3.12 my-project` | 锁定 Python 版本 |
|
||||
| 创建库项目(不是应用) | `uv init --lib` | 生成适合打包发布的结构 |
|
||||
|
||||
## 二、虚拟环境
|
||||
|
||||
| 场景 | 命令 | 说明 |
|
||||
| ------------ | ----------------------------------- | ------------------- |
|
||||
| 创建虚拟环境 | `uv venv` | 自动创建 `.venv` |
|
||||
| 创建时指定 Python | `uv venv --python 3.12` | 用特定版本 |
|
||||
| 创建时带 pip | `uv venv --seed` | 装上 pip 和 setuptools |
|
||||
| 激活环境 | `.venv\Scripts\activate`(Windows) | 跟标准 venv 一样 |
|
||||
| 删除环境 | `Remove-Item -Recurse -Force .venv` | 删掉即可,之后能重新创建 |
|
||||
|
||||
## 三、依赖管理(核心流程)
|
||||
|
||||
### 添加依赖
|
||||
|
||||
| 命令 | 说明 |
|
||||
|------|------|
|
||||
| `uv add numpy` | 安装并写入 `pyproject.toml` |
|
||||
| `uv add pandas --dev` | 安装为开发依赖 |
|
||||
| `uv add "numpy>=2.0,<3.0"` | 带版本约束 |
|
||||
| `uv add git+https://github.com/user/repo.git` | 从 Git 安装 |
|
||||
| `uv add ./local-package` | 从本地路径安装 |
|
||||
|
||||
### 移除依赖
|
||||
|
||||
| 命令 | 说明 |
|
||||
|------|------|
|
||||
| `uv remove numpy` | 卸载并从 `pyproject.toml` 移除 |
|
||||
|
||||
### 同步/安装
|
||||
|
||||
| 命令 | 说明 |
|
||||
|------|------|
|
||||
| `uv sync` | 根据锁文件安装所有依赖(有锁文件时) |
|
||||
| `uv sync --no-dev` | 只安装正式依赖,跳过开发依赖 |
|
||||
| `uv lock` | 生成/更新 `uv.lock` 锁文件 |
|
||||
| `uv lock --upgrade-package numpy` | 只升级指定包的锁版本 |
|
||||
| `uv tree` | 查看依赖树 |
|
||||
|
||||
## 四、用 uv 运行/执行
|
||||
|
||||
| 命令 | 说明 |
|
||||
|------|------|
|
||||
| `uv run python main.py` | 在项目环境中运行脚本 |
|
||||
| `uv run python` | 进入项目环境的 Python 交互模式 |
|
||||
| `uv run pytest` | 运行项目中的测试 |
|
||||
| `uv run ipython` | 运行任意命令,自动使用当前环境 |
|
||||
| `uv run --with requests python` | 临时加一个包再运行(不写入依赖) |
|
||||
| `uvx ruff check .` | 运行一次性工具(等同于 `uv tool run`) |
|
||||
|
||||
## 五、Python 版本管理
|
||||
|
||||
| 命令 | 说明 |
|
||||
| ------------------------ | ----------------- |
|
||||
| `uv python list` | 查看已安装的 Python 版本 |
|
||||
| `uv python install 3.12` | 安装指定版本 |
|
||||
| `uv python pin 3.12` | 为当前项目锁定 Python 版本 |
|
||||
|
||||
## 六、典型工作流
|
||||
|
||||
### 从头开始一个项目
|
||||
|
||||
```powershell
|
||||
# 1. 创建项目
|
||||
uv init myproject
|
||||
cd myproject
|
||||
|
||||
# 2. 添加依赖(自动创建 .venv 并安装)
|
||||
uv add numpy pandas
|
||||
|
||||
# 3. 写代码...
|
||||
|
||||
# 4. 运行
|
||||
uv run python main.py
|
||||
```
|
||||
|
||||
### 克隆已有项目
|
||||
|
||||
```powershell
|
||||
# 1. 克隆
|
||||
git clone <url>
|
||||
cd project
|
||||
|
||||
# 2. 一键装上所有依赖
|
||||
uv sync
|
||||
|
||||
# 3. 运行
|
||||
uv run python main.py
|
||||
```
|
||||
|
||||
### 用 pip 风格的即时安装(不写 pyproject.toml)
|
||||
|
||||
```powershell
|
||||
# 只是装个包试试,不想污染项目定义
|
||||
uv pip install requests
|
||||
uv pip list
|
||||
uv pip uninstall requests
|
||||
```
|
||||
Reference in New Issue
Block a user