本项目使用 uv 作为现代 Python 包管理工具,提供快速、可靠的依赖管理和虚拟环境支持。
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Unix/Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | shWindows:
setup.batUnix/Linux/macOS:
./setup.sh# 创建虚拟环境并安装依赖
uv sync
# 安装开发依赖
uv sync --extra devpython_learning_assistant/
├── .venv/ # uv 创建的虚拟环境
├── src/ # 源代码
│ ├── main.py # 主程序
│ ├── api_key_manager.py # API密钥管理
│ └── time_manager.py # 时间管理模块
├── config/ # 配置文件
├── docs/ # 文档
├── examples/ # 示例代码
├── sessions/ # 会话存储
├── pyproject.toml # 项目配置和依赖
├── uv.lock # 依赖版本锁定文件
├── setup.bat # Windows 自动安装脚本
└── setup.sh # Unix/Linux 自动安装脚本
# 使用 uv 运行
uv run python run.py
# 或者激活虚拟环境后运行
.venv/Scripts/activate # Windows
source .venv/bin/activate # Unix/Linux
python run.py# 运行测试
uv run pytest
# 代码格式化
uv run black src/ examples/ test*.py run.py
# 代码检查
uv run flake8 src/ examples/ test*.py run.py
# 类型检查
uv run mypy src/# 添加新的依赖
uv add package-name
# 添加开发依赖
uv add --dev package-name
# 移除依赖
uv remove package-name
# 更新依赖
uv sync --upgrade
# 查看依赖树
uv tree# 查看虚拟环境信息
uv venv --show
# 激活虚拟环境
.venv/Scripts/activate # Windows
source .venv/bin/activate # Unix/Linux
# 退出虚拟环境
deactivateopenai>=1.0.0- OpenAI API 客户端requests>=2.28.0- HTTP 请求库
pytest>=7.0.0- 测试框架black>=23.0.0- 代码格式化工具flake8>=6.0.0- 代码检查工具mypy>=1.0.0- 类型检查工具
- uv 比 pip 快 10-100 倍
- 依赖解析和安装都极其快速
- 确定性的依赖解析
- 锁定文件确保环境一致性
- 单个命令完成所有操作
- 自动管理虚拟环境
- 兼容 pip 和 PyPI
- 支持现代 Python 项目标准
当您要分发这个项目给其他用户时,他们只需要:
- 克隆项目
- 安装 uv
- 运行安装脚本
# 克隆项目
git clone <repository-url>
cd python_learning_assistant
# Windows
setup.bat
# Unix/Linux/macOS
./setup.sh就这么简单!uv 会自动处理:
- 创建虚拟环境
- 安装正确版本的依赖
- 配置开发环境
-
uv 命令不存在
- 确保 uv 已正确安装
- 重新启动终端或命令提示符
-
依赖安装失败
- 检查网络连接
- 尝试使用
uv sync --offline使用缓存
-
虚拟环境激活失败
- 确保使用正确的激活命令
- 检查虚拟环境路径
# 查看 uv 帮助
uv --help
# 查看特定命令帮助
uv sync --help- 主配置:
config/config.json - API密钥:
config/api_keys.json - 项目配置:
pyproject.toml
MOONSHOT_API_KEY- Moonshot API 密钥UV_LINK_MODE=copy- 如果需要复制而不是硬链接
通过使用 uv,这个项目现在拥有了现代化的 Python 包管理体验,让用户可以快速、可靠地设置和运行项目!