
# 如何解决uv目录占用磁盘空间过大问题？
#### 问题现象
系统磁盘空间不足，排查后发现uv或uvx相关的目录占用了大量存储空间，且随着使用时间的增长，体积持续增大。
#### 原因分析
安装了使用uv/uvx启动的MCP服务器。uv是一款高性能的Python包管理工具，常用于运行MCP服务器。其磁盘占用主要来源于以下两部分：
- uv自身安装文件：这部分通常占用较小，可忽略不计。
- uv全局缓存目录：**uv工具本身的机制**，是导致空间占用的主要原因。uv采用全局缓存策略，在通过uv安装或运行Python包时，会将下载的依赖包、编译缓存以及虚拟环境等缓存在本地。由于uv默认不会自动清理历史缓存，随着您使用的MCP服务器数量增加或版本迭代更新，旧版本的缓存文件会持续累积，从而导致磁盘占用逐渐膨胀。
 
#### 解决方法
要解决uv缓存占用C盘的问题，您可以选择定期清理缓存，或者通过配置环境变量将缓存目录迁移到其他磁盘空间。
#### 定期清理uv缓存
清理uv缓存的方法相对简单，您只需在任意命令行界面中执行以下指令之一：
- 执行uv cache prune命令 该命令仅删除无用的缓存内容，不会影响正在使用的缓存，因此非常安全，**建议优先使用**。
  

- 执行uv cache clean命令 该命令会清空所有缓存，如果您觉得通过prune释放的空间不足，再考虑使用此命令。
  
如果命令行执行时遇到异常（例如缓存文件过大，导致删除文件操作异常等），您可以尝试手动清理缓存目录：删除%USERPROFILE%/AppData/Local/uv/cache文件夹中的内容，以解决相关问题。
![](https://support.huaweicloud.com/codeartsagent_faq/public_sys-resources/note_3.0-zh-cn.png)
删除uv缓存不会导致Python出现异常，但下一次重新运行（如重连MCP时）可能会稍慢。推荐优先使用uv cache prune命令只删除无用内容。如果清理过程中收到提示Cache is currently in-use, waiting for other uv processes to finish (use --force to override)，可以退出CodeArts Agent，或者通过任务管理器查找并关闭其他正在运行的uv进程。关闭后，清理动作会自动继续执行。
#### 配置环境变量，避免uv缓存占用C盘
uv的默认缓存路径位于%USERPROFILE%/AppData/Local/uv/cache，这可能会占用较多的C盘空间。您可以通过设置环境变量UV_CACHE_DIR来自定义缓存存放位置。以下是两种推荐的配置方式：
- 方式一：配置系统级环境变量
  1. 打开"系统属性"，单击"高级"页签下的"环境变量"。
  
  2. 在系统变量中，单击新建，新建一个新增UV_CACHE_DIR系统变量。
  
  3. 单击"确定"，返回环境变量页面，再单击"确定"，完成设置。 这种配置方式会将系统所有uv运行的缓存数据都配置到指定位置，避免占用C盘空间，但您指定目录的空间还是会占用，仍建议定期清理。
     
   
- 方式二：在MCP配置中指定环境变量 如果不希望修改系统级的uv缓存目录，可以为MCP单独配置缓存路径。配置方法如下：
  在mcp_settings.json中找到对应的MCP服务，在"environment"节点下添加""UV_CACHE_DIR": "./.uv-cache""环境变量（如果"environment"节点不存在，请手动创建）。这里的"./.uv-cache"表示在当前项目目录下创建缓存文件夹。这种相对路径能将缓存隔离在项目内，但各项目之间无法共享缓存。您也可根据需求更改为其他绝对路径。
  ```
  {
      "mcp": {
          "Demo-Mcp-Server": {
              "enabled": true,
              "timeout": 5000,
              "command": ["uvx", "--default-index", "https://mirrors.tools.huawei.com/pypi/simple", "--allow-insecure-host", "mirrors.tools.huawei.com", "--from", "https://cmc.centralrepo.rnd.huawei.com/xxx_demo.tar.gz", "mcp-server-demo"],
              "environment": {
                  "UV_CACHE_DIR": "./.uv-cache"
              },
              "type": "local"
          }
      }
  }
  ```
  
 
