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

如何让Shinylive中Python的文件路径正常工作?

解决Shiny应用托管时CSV文件找不到的问题

核心原因

用python3 -m http.server托管或部署到Shinylive/GitHub时,应用运行在Web环境中,本地文件系统的路径逻辑不适用,不能直接用本地绝对路径或简单相对路径读取文件。

具体解决步骤

  • 确认文件位置与服务器根目录匹配
    你用--directory docs指定了服务器根目录是docs,所以data_new.csv必须放在docs目录下(或其子目录,按层级调整路径)。比如:

    • 如果脚本在docs/app里,CSV在docs根目录,路径要写成"../data_new.csv"
    • 如果CSV和脚本在同一目录(docs/app),直接用"data_new.csv"
      部署到GitHub Pages时,要确保CSV文件被推送到仓库的对应目录(比如docs分支或根目录),且没被.gitignore排除。
  • 改用Web环境兼容的读取方式
    在Shinylive中,浏览器沙箱限制了本地文件读取,需要通过HTTP请求获取CSV:

    import pandas as pd
    import requests
    
    # 相对URL,和应用页面同路径
    csv_url = "data_new.csv"
    df = pd.read_csv(requests.get(csv_url).content.decode('utf-8'))
    

    本地用http.server测试时,只要文件位置正确,直接用pd.read_csv("data_new.csv")就能生效,前提是服务器根目录设置正确。

  • 检查文件名大小写
    Linux环境和GitHub Pages区分文件名大小写,比如本地是Data_New.csv,代码里写data_new.csv会直接找不到,必须严格匹配。

  • 放弃绝对路径
    绝对路径指向的是服务器的文件系统,不是你的本地机器,在Web托管场景下完全无效,必须用相对URL或相对于服务器根目录的路径。

内容的提问来源于stack exchange,提问作者Steve Tchana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 12:48:18