跳转至

使用 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/
回到页面顶部