-
Notifications
You must be signed in to change notification settings - Fork 11
Shinylive-R embedded in Quarto not rendering without R in PATH #64
Description
I was asked to file it here by the Quarto team (quarto-dev/quarto#557).
System details:
Windows 11 64-bit
Version details:
Positron Version: 2024.09.0 (system setup) build 77
Code - OSS Version: 1.93.0
Date: 2024-09-23T02:44:07.418Z
Electron: 30.4.0
Chromium: 124.0.6367.243
Node.js: 20.15.1
V8: 12.4.254.20-electron.0
OS: Windows_NT x64 10.0.22631
Quarto: 1.6.15
shinylive (R package): 0.2.0
Interpreter details:
R 4.4.1
Describe the issue:
Seems to be a Windows only issue.
In a nutshell, without R in PATH for Windows:
- Positron/VS Code + Quarto + Shinylive + R = ×
- Positron/VS Code + Quarto + Shinylive + Python = √
- RStudio + Quarto + Shinylive + R = √
- Positron/VS Code + Shiny + R = √
Steps to reproduce the issue:
- No R in PATH (default setting for Windows)
- Start a new folder for the Quarto project
- Open the folder in Positron/VS Code
- Execute
quarto add quarto-ext/shinylivein Terminal to install the Quarto extension. - Run
install.packages("shinylive")if it has not been installed before. - Start a .qmd file
- Include the following minimum quarto document, and render:
---
title: "Shinylive R test"
filters:
- shinylive
---
```{shinylive-r}
#| standalone: true
```- You get an error.
Expected or desired behavior:
Running normally as in RStudio.

From RStudio Background Jobs:
==> quarto preview shinyliver.qmd --to default --no-watch-inputs --no-browse
pandoc
to: html
output-file: shinyliver.html
standalone: true
section-divs: true
html-math-method: mathjax
wrap: none
default-image-extension: png
metadata
document-css: false
link-citations: true
date-format: long
lang: en
title: Shinylive R test
ℹ Loading metadata database
✔ Loading metadata database ... done
Output created: shinyliver.html
Watching files for changes
Browse at http://localhost:5239/
Were there any error messages in the UI, Output panel, or Developer Tools console?
From Positron/VS Code Terminal:
PS D:\OneDrive - London School of Economics\Desktop\shinyliveRError> quarto preview "d:/OneDrive - London School of Economics/Desktop/shinyliveRError/shinyliver.qmd" --no-browser --no-watch-inputs
pandoc
to: html
output-file: shinyliver.html
standalone: true
section-divs: true
html-math-method: mathjax
wrap: none
default-image-extension: png
metadata
document-css: false
link-citations: true
date-format: long
lang: en
title: Shinylive R test
(E) Error running 'Rscript' command. Perhaps you need to install / update the 'shinylive' R package?
Error:
PandocError {}
Error running filter D:/quarto/share/filters/main.lua:
...iveRError\_extensions\quarto-ext\shinylive\shinylive.lua:40: Error running 'Rscript' command. Perhaps you need to install / update the 'shinylive' R package?
stack traceback:
...iveRError\_extensions\quarto-ext\shinylive\shinylive.lua:40: in global 'throw_quarto_error'
...iveRError\_extensions\quarto-ext\shinylive\shinylive.lua:86: in global 'callRShinylive'
...iveRError\_extensions\quarto-ext\shinylive\shinylive.lua:113: in global 'callShinylive'
...iveRError\_extensions\quarto-ext\shinylive\shinylive.lua:286: in global 'ensureBaseSetup'
...iveRError\_extensions\quarto-ext\shinylive\shinylive.lua:315: in global 'ensureLanguageSetup'
...iveRError\_extensions\quarto-ext\shinylive\shinylive.lua:424: in function <...iveRError\_extensions\quarto-ext\shinylive\shinylive.lua:408>
[C]: in ?
[C]: in method 'walk'
D:/quarto/share/filters/main.lua:558: in local 'checked_walk'
D:/quarto/share/filters/main.lua:610: in function 'run_emulated_filter'
D:/quarto/share/filters/main.lua:1335: in local 'callback'
[string "..."]:1888: in field 'withScriptFile'
D:/quarto/share/filters/main.lua:1351: in upvalue 'run_emulated_filter_chain'
D:/quarto/share/filters/main.lua:1389: in function <D:/quarto/share/filters/main.lua:1386>
stack traceback:
D:/quarto/share/filters/main.lua:558: in local 'checked_walk'
D:/quarto/share/filters/main.lua:610: in function 'run_emulated_filter'
D:/quarto/share/filters/main.lua:1335: in local 'callback'
[string "..."]:1888: in field 'withScriptFile'
D:/quarto/share/filters/main.lua:1351: in upvalue 'run_emulated_filter_chain'
D:/quarto/share/filters/main.lua:1389: in function <D:/quarto/share/filters/main.lua:1386>
This error is misleading since it tells the user to (re)install the shinylive R package, whereas what the user really needs to to is to put R in PATH/the lua should detect R in other ways.
@jennybc points out in quarto-dev/quarto#557 (comment) that:
I can speak to the Positron + Windows part of this. By default, the CRAN R installer for Windows does not put R on the PATH. Therefore R installation discovery focuses on well-known places and learning from the registry instead. Most Windows users will not have R on the PATH, so a naked call to
RorRscriptis going to fail.
@cscheid thinks this leads to a problem (quarto-dev/quarto#557 (comment)) given
| res = pandoc.pipe("Rscript", args, input) |