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

使用learnr构建的R教程无法部署至Shiny.io

部署learnr教程时的GitHub授权401错误解决办法

问题详情

部署基于learnr包开发的R交互式教程(从RStudio模板生成)时,持续触发HTTP 401未授权错误,错误指向拉取learnr开发版(0.11.5.9000)时无法访问GitHub仓库rstudio/learnr。但常规Shiny应用部署正常,多次更换密钥也无法解决。

错误信息:

----- Deployment error -----
Error: Unhandled Exception: child_task=1446984232 child_task_status=failed: Error building image: Error fetching learnr (0.11.5.9000) source. Error accessing GitHub repository rstudio/learnr. HTTP 401: Unauthorized
 
----- Error stack trace -----

4: rsconnect::deployApp(appDir = "~/code/test2", 
       appFileManifest = "/var/folders/nm/nm2q6pg520bgts_fpg2f2rl40000gp/T/1101-6ba4-a50f-0a65", 
       appPrimaryDoc = "test2.Rmd", appSourceDoc = "~/code/test2/test2.Rmd", 
    ...

3: client$waitForTask(taskId, quiet)

2: stop(status$error, call. = FALSE)

1: (function (e) 
   {
       cat("----- Deployment error -----
")
    ...

Error: Unhandled Exception: child_task=1446984232 child_task_status=failed: Error building image: Error fetching learnr (0.11.5.9000) source. Error accessing GitHub repository rstudio/learnr. HTTP 401: Unauthorized
Execution halted

解决步骤

1. 切换到CRAN稳定版learnr(推荐)

开发版learnr需要从GitHub拉取,部署环境可能因网络或权限限制无法访问。改用CRAN稳定版可直接绕过这个问题:

  • 卸载当前开发版:
    remove.packages("learnr")
    
  • 安装CRAN稳定版:
    install.packages("learnr")
    
  • 更新教程项目的依赖(比如renv.lock或DESCRIPTION),确保引用的是CRAN版本,重新部署即可。

2. 若必须使用开发版,配置GitHub访问权限

如果依赖开发版的功能,需给部署环境提供GitHub访问权限:

  • 生成一个带有public_repo权限的GitHub个人访问令牌(PAT)
  • 登录Shiny Apps Dashboard,找到对应应用的「Settings」页面,添加环境变量GITHUB_PAT,值为你的GitHub令牌
  • 更新项目依赖配置,确认learnr的来源指向GitHub,然后重新部署

3. 检查部署工具版本与账户连接

  • 更新rsconnect包到最新版,避免旧版本的兼容性问题:
    install.packages("rsconnect")
    
  • 重新连接Shiny账户,确认连接状态正常:
    rsconnect::connectUser()
    

内容的提问来源于stack exchange,提问作者MC Fitzpatrick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 14:22:45