You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit服务器中dvc pull命令失效,无法加载CSV数据文件

解决Streamlit部署中dvc pull无法拉取Google Drive文件的问题

1. 捕获dvc pull完整输出,定位真实错误

之前的调用没拿到DVC的错误信息是排查核心障碍,改用subprocess.run强制捕获标准输出和错误,同时指定正确的项目工作目录:

import os
import subprocess

# 切换到包含.dvc文件夹的项目根目录
project_root = "/mount/src/mlops"
os.chdir(project_root)

# 执行dvc pull并捕获所有输出
result = subprocess.run(
    ["dvc", "pull"],
    capture_output=True,
    text=True
)

# 打印输出到Streamlit日志,用于排查
print("DVC Pull STDOUT:\n", result.stdout)
print("DVC Pull STDERR:\n", result.stderr)
print("DVC Return Code:", result.returncode)

通过这些输出就能看到DVC执行时的具体报错,比如授权失败、配置缺失等关键信息。

2. 检查DVC的Google Drive授权与配置

  • 手动在Streamlit服务器上切换到项目根目录,直接执行dvc pull,观察是否有授权提示或权限类错误。
  • 查看项目根目录下的.dvc/config文件,确认remote配置指向正确的Google Drive路径,且服务账号密钥文件(如service-account.json)在服务器上的存储路径与配置一致。
  • 若服务账号密钥过期或权限被撤销,重新生成密钥并替换服务器上的对应文件,再重新执行dvc pull。

3. 确认工作目录与文件权限

  • 用os.getcwd()打印Streamlit运行时的工作目录,确保和项目根目录一致,否则DVC无法找到.dvc配置文件。
  • 检查/mount/src/mlops/data目录是否存在,且Streamlit进程对该目录有读写权限。
  • 检查.dvc/cache目录的权限,缓存目录损坏或无写入权限会导致拉取失败。

4. 对齐DVC版本与依赖

  • 对比本地和服务器的DVC版本(执行dvc --version),版本不一致可能引发兼容性问题,统一升级或降级到相同版本。
  • 确认服务器安装了DVC的Google Drive扩展依赖:执行pip install dvc[gdrive],避免依赖缺失导致无法连接Google Drive。

5. 验证Google Drive文件与DVC跟踪状态

  • 检查GitHub上的.dvc文件是否为最新版本,确保文件哈希值与Google Drive中的文件匹配。
  • 确认Google Drive中的labeled_projects.csv未被删除、移动,且服务账号拥有该文件的读取权限。

内容的提问来源于stack exchange,提问作者Tony Peng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 23:17:33