使用 uv工具管理 mcp项目
2025-07-08 by dongnan
环境描述
- OS:Ubuntu 22.04.4 LTS
- uv:v0.6.14
- mcp:v1.6.0
功能
uv 是一个用 Rust
编写的极快 Python
包和项目管理工具。
可替代 pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv 等多种工具。
安装
二进制包
直接使用 uv 二进制文件方式安装
# https://github.com/astral-sh/uv/releases
$ sha256sum -c uv-x86_64-unknown-linux-gnu.tar.gz.sha256
uv-x86_64-unknown-linux-gnu.tar.gz: OK
$ tar zxf uv-x86_64-unknown-linux-gnu.tar.gz
$ sudo mv uv-x86_64-unknown-linux-gnu/uv* /usr/local/bin/
检查是否安装成功
$ uv version
uv 0.6.14
Shell 自动补全
$ echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
$ echo 'eval "$(uvx --generate-shell-completion bash)"' >> ~/.bashrc
source .bashrc
卸载
在移除二进制文件之前需要清理 uv 存储的数据。
$ uv cache clean
然后只需删除 uv 和 uvx 二进制文件即可。
$ rm /usr/local/bin/uv /usr/local/bin/uvx
使用
管理 python 环境
查看可用的 Python 版本
$ uv python list
cpython-3.14.0a6-linux-x86_64-gnu <download available>
...省略
cpython-3.10.12-linux-x86_64-gnu /usr/bin/python3.10
cpython-3.10.12-linux-x86_64-gnu /usr/bin/python3 -> python3.10
cpython-3.10.12-linux-x86_64-gnu /usr/bin/python -> /usr/bin/python3
cpython-3.10.12-linux-x86_64-gnu .pyenv/shims/python3.10
cpython-3.10.12-linux-x86_64-gnu .pyenv/shims/python3
cpython-3.10.12-linux-x86_64-gnu .pyenv/shims/python
...省略
cpython-3.7.9-linux-x86_64-gnu <download available>
为当前项目指定使用的 Python 版本
$ uv python pin 3.10.12
Pinned `.python-version` to `3.10.12`
查找已安装的 Python 版本
$ uv python find
/usr/bin/python3.10
安装 Python 版本
$ uv python install
卸载 Python 版本
$ uv python uninstall
运行独立的 Python 脚本
$ uv run mcp_server_sse.py
管理项目
创建并管理包含 pyproject.toml
的 Python 项目。
创建一个新项目
$ uv init attendance
$ cd attendance
创建虚拟环境
$ uv venv
激活环境(可选)
$ source .venv/bin/activate
退出环境(可选)
$ deactivate
向项目添加依赖
$ uv add "mcp[cli]" httpx
在项目环境中运行命令
$ uv run mcp dev weather_stdio.py
查看项目的结构
$ uv tree -d 1
Resolved 29 packages in 1ms
weather v0.1.0
├── httpx v0.28.1
└── mcp[cli] v1.6.0
其它
- uv remove:从项目中移除依赖。
- uv sync:同步项目依赖到环境。
- uv lock:为项目依赖创建锁文件。
- uv build:构建项目的分发包。
- uv publish:将项目发布到包索引。
pip 接口
手动管理环境和包,适用于需要精细控制的传统工作流或场景。
创建虚拟环境
替代 venv 和 virtualenv
uv venv:创建一个新的虚拟环境。
管理环境中的包
替代 pip 和 pipdeptree
- uv pip install:安装包到当前环境。
- uv pip show:显示已安装包的详细信息。
- uv pip freeze:列出已安装包及其版本。
- uv pip check:检查当前环境中的包是否兼容。
- uv pip list:列出已安装的包。
- uv pip uninstall:卸载包。
- uv pip tree:查看环境的依赖树。
锁定环境中的包
替代 pip-tools
- uv pip compile:将需求文件编译为锁文件。
- uv pip sync:根据锁文件同步环境。
其它
管理和查看 uv 的状态,如缓存、存储目录,或执行自更新:
- uv cache clean:清理缓存条目。
- uv cache prune:清理过期的缓存条目。
- uv cache dir:显示 uv 缓存目录路径。
- uv tool dir:显示 uv 工具目录路径。
- uv python dir:显示 uv 安装的 Python 版本路径。
- uv self update:将 uv 更新到最新版本。
问题
No interpreter found
uv venv
× No interpreter found for executable name `system` in managed installations or search path
操作如下
uv python pin 3.10.12
uv venv -p 3.10.12
source .venv/bin/activate
参考
- https://docs.astral.sh/uv/getting-started/features/
- https://hellowac.github.io/uv-zh-cn/
- https://zhuanlan.zhihu.com/p/689976933
- https://hellowac.github.io/uv-zh-cn/guides/integration/docker/