如何在Python Shiny中显示本地PDF?解决路径“Not Found”错误
解决Python Shiny本地PDF显示"Not Found"问题
核心原因
Shiny for Python 默认从www目录加载静态资源,若文件未放在正确路径或路径写法有误,前端会无法找到本地PDF文件。
具体解决步骤
1. 放置文件到正确目录
必须将Test.pdf放在项目根目录下的www文件夹中(无此文件夹则新建),目录结构如下:
your_app/ ├── app.py └── www/ └── Test.pdf
2. 修正iframe路径代码
在pdf渲染函数中,直接使用文件名即可(Shiny会自动从www目录读取资源):
@output @render.ui def pdf(): return ui.tags.iframe(src="Test.pdf", width="100%", height="800px")
3. 备选方案:用链接打开PDF
如果iframe加载有异常,可改为提供链接让用户在新窗口打开或下载:
@output @render.ui def pdf(): return ui.tags.a("查看PDF文件", href="Test.pdf", target="_blank")
4. 验证资源可访问性
启动应用后,在浏览器直接访问http://localhost:8000/Test.pdf(端口号以实际运行端口为准),若能正常打开PDF,说明路径配置正确,iframe即可正常加载。
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

