miktex 和 pandoc 的相对系统路径 - 闪亮的应用程序打包为 Windows 桌面应用程序
Relative system path to miktex and pandoc - Shiny Application packaged as Windows desktop app
我按照以下教程将 Shiny 应用程序打包为 Windows 桌面应用程序:http://www.r-bloggers.com/deploying-desktop-apps-with-r/
在我的 Shiny 应用程序中,我提供用户使用 pandoc 和 MikTex 生成 PDF 报告。
为了让它在我的桌面应用程序中工作,我在我的 runShinyApp.R 脚本中添加了以下代码。
Sys.setenv(PATH=paste("C:/Users/WoBa/Documents/dist/pandoc",sep=";",
"C:/Users/WoBa/Documents/dist/miktex/miktex/bin/"))
虽然这工作正常,但我希望此路径是相对的,这样应用程序就可以分发给其他用户,而无需他们更改路径。
我尝试了以下方法 - 但没有用:
Sys.setenv(PATH=paste("./pandoc",sep=";",
"./miktex/miktex/bin/"))
文件夹结构如下:
dist/
+ GoogleChromePortable
+ miktex
+ pandoc
+ R-Portable
+ runShinyApp.R
+ run.bat
现在有人知道如何使这条路径成为相对路径吗? (在Windows)这对我有很大帮助!
我设法在 runShinyApp.R 脚本中使用以下代码提供了相对路径:
miktex = file.path(getwd(), 'miktex/miktex/bin/')
pandoc = file.path(getwd(), 'pandoc')
Sys.setenv(PATH=paste(pandoc, sep=";", miktex))
只是提供答案,因为这可能对将来的其他人有用。
我用同样的教程制作了一个类似的应用程序。
我已根据 ny Yihui Xie 提供的解决方案将以下内容添加到我的 runShinyApp.R-script,jst 在 runApp 命令之前。
pandoc <- paste(getwd(), "pandoc-2.4", sep = "/")
TinyTex <- paste(getwd(), "TinyTeX/bin/win32", sep = "/")
add_path = function(path) {
s = .Platform$path.sep
paths = c(path, unlist(strsplit(Sys.getenv('PATH'), s)))
Sys.setenv(PATH = paste(paths, collapse = s))
}
add_path(pandoc)
add_path(TinyTex)
我按照以下教程将 Shiny 应用程序打包为 Windows 桌面应用程序:http://www.r-bloggers.com/deploying-desktop-apps-with-r/
在我的 Shiny 应用程序中,我提供用户使用 pandoc 和 MikTex 生成 PDF 报告。 为了让它在我的桌面应用程序中工作,我在我的 runShinyApp.R 脚本中添加了以下代码。
Sys.setenv(PATH=paste("C:/Users/WoBa/Documents/dist/pandoc",sep=";",
"C:/Users/WoBa/Documents/dist/miktex/miktex/bin/"))
虽然这工作正常,但我希望此路径是相对的,这样应用程序就可以分发给其他用户,而无需他们更改路径。
我尝试了以下方法 - 但没有用:
Sys.setenv(PATH=paste("./pandoc",sep=";",
"./miktex/miktex/bin/"))
文件夹结构如下:
dist/
+ GoogleChromePortable
+ miktex
+ pandoc
+ R-Portable
+ runShinyApp.R
+ run.bat
现在有人知道如何使这条路径成为相对路径吗? (在Windows)这对我有很大帮助!
我设法在 runShinyApp.R 脚本中使用以下代码提供了相对路径:
miktex = file.path(getwd(), 'miktex/miktex/bin/')
pandoc = file.path(getwd(), 'pandoc')
Sys.setenv(PATH=paste(pandoc, sep=";", miktex))
只是提供答案,因为这可能对将来的其他人有用。
我用同样的教程制作了一个类似的应用程序。 我已根据 ny Yihui Xie 提供的解决方案将以下内容添加到我的 runShinyApp.R-script,jst 在 runApp 命令之前。
pandoc <- paste(getwd(), "pandoc-2.4", sep = "/")
TinyTex <- paste(getwd(), "TinyTeX/bin/win32", sep = "/")
add_path = function(path) {
s = .Platform$path.sep
paths = c(path, unlist(strsplit(Sys.getenv('PATH'), s)))
Sys.setenv(PATH = paste(paths, collapse = s))
}
add_path(pandoc)
add_path(TinyTex)